Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день!
Сайт на Wordpress
Большое кол-во записей - порядка 100000 и доп полей более миллиона
Сайт стал тормозить, посоветовали проверить индексы, да индексов не было, включил, стал работать как обычно, что обрадовало.
Но подскажите пожалуйста подробнее по индексам:
1. Где находятся эти индексы
2. Нужно ли под них выделять память (или что-то другое) какой-то настройкой my.cnf, и где они хранятся.
3. Много ли места будут занимать, если в БД будет к примеру 50000000 записей
4. Индексы включал запросом: ALTER TABLE wp_postmeta ENABLE KEYS - они включаются один раз на таблицу или нужно постоянно после работы скриптов их включать?
5. Если включу на все таблицы - это не будет хуже?
6. При работе с индексами как будет нагрузка на сервер?
Спасибо
Неактивен
условно: если таблица это книга, то индекс - алфавитный указатель к ней
хранится там же где и данные, т.е. в соответствующем хранилище
в my.cnf выделяют память под соответствующие буферы
а много ли места будут занимать данные при 50000000 записей? ответ зависит от размера каждой записи и наличия места, аналогично и с индексами
условно: индексы ускоряют чтение, если могут быть использованы, и замедляют изменение данных, так что нужен разумный баланс
Неактивен
vasya написал:
условно: если таблица это книга, то индекс - алфавитный указатель к ней
хранится там же где и данные, т.е. в соответствующем хранилище
в my.cnf выделяют память под соответствующие буферы
а много ли места будут занимать данные при 50000000 записей? ответ зависит от размера каждой записи и наличия места, аналогично и с индексами
условно: индексы ускоряют чтение, если могут быть использованы, и замедляют изменение данных, так что нужен разумный баланс
Большое спасибо. Уточните пожалуйста, в my.cnf какой именно настройкой выделять место под индексы?
Неактивен
А еще, если будет мало места под индексы, тюнер скажет это?
Неактивен
rra005 написал:
Большое спасибо. Уточните пожалуйста, в my.cnf какой именно настройкой выделять место под индексы?
см http://sqlinfo.ru/articles/info/3.html
для других хранилищ будут иные настройки
rra005 написал:
А еще, если будет мало места под индексы, тюнер скажет это?
не в курсе
Неактивен
Спасибо
Подскажите еще, если будет мало места под индексы, то БД будет тормозить?
Также как я понимаю?
Неактивен
Нельзя допускать, чтобы не было необходимого места на диске. Если место на диске закончится, поведение СУБД станет нежелательным для администратора.
Неактивен
ммм, а индексы располагаются на диске, не в памяти?
Неактивен
vasya написал:
хранится там же где и данные
,т.е. на диске
Неактивен
Но по ссылке http://sqlinfo.ru/articles/info/3.html написано, что за индексы отвечает настройка key_buffer_size, которая располагается в памяти... что-то я совсем запутался
Неактивен
key_buffer_size определяет размер кэша для таблиц типа MyISAM, т.е. объем оперативной памяти, в которой создается копия индекса.
http://sqlinfo.ru/articles/info/3.html написал:
При работе с типом таблиц MyISAM, MySQL использует кэш индексов. Это означает, что при чтении индекса таблицы с диска, он оставляет копию этого индекса в оперативной памяти. При последующих обращениях к этим элементам индекса, нет необходимости обращаться к диску, а значит, мы повышаем производительность сервера.
Неактивен
Ок спасибо. А если быстрый диск SSD на сервере, то как понимаю по факту, эта настройка будет играть не главную роль?
Неактивен
эта настройка может вообще не играть роли, если у вас таблицы другого типа
и ram всё равно быстрее ssd
что играет главную роль см Поиск узких мест в производительности MySQL: ботанический определитель
Неактивен