Можно прийти к ложному выводу, что чем больше индексов - тем лучше, но это не так: добавление индекса далеко не всегда приводит к увеличению производительности. Например, маленьким таблицам индексирование не нужно. К тому же каждый индекс занимает место на диске - каждое индексированное поле заставляет MySQL хранить информацию о каждой записи в этом поле и ее расположении в базе данных. При создании индексов эти таблицы начинают занимать больше места. Далее, индексирование ускоряет поиск, но заметно замедляет такие операции записи, как INSERT, DELETE или UPDATE. Вполне возможно, что первые попытки индексирования не дадут большого прироста производительности.
Контролировать и определять кандидатов на индексирование помогут счетчики. Команды SHOW STATUS и расширенные команды состояния mysqladmin выдают значения, имеющие отношение к индексам.
■ При работающих индексах значение счетчика Handler_read_key должно быть большим. Это значение отображает количество чтений строк с помощью индекса. Небольшое значение указывает на небольшое увеличение производительности после добавления индекса, так как он не используется часто.
■ Большое значение счетчика Handler_read_rnd_next свидетельствует о том, что ваши запросы выполняются неэффективно, а решением проблемы может быть индексирование. Это значение указывает количество последовательных запросов чтения следующей строки в последовательности. Это происходит когда для выполнения запроса таблица последовательно сканируется с начала до конца от первой записи до последней. При частых запросах это довольно неразумное использование ресурсов. Ассоциированный индекс прямо указывает на запись (или записи), и полное сканирование таблицы при этом не нужно. Заметьте, что плохо работающие индексы тоже могут привести к увеличению этого значения.
Чтобы просмотреть эти счетчики, запустите команду.
После заполнения таблиц данными и их индексирования их должным образом, необходимо запустить команду ANALYZE TABLE. Эта команда анализирует данные в таблице и создает статистику по среднему количеству строк, которые используют одинаковые значения. Эта информация используется оптимизатором MySQL при принятии решения, какой индекс использовать для объединения таблиц.
Для уверенности в том, что оптимизатор использует самый эффективный индекс, неплохо часто запускать команду ANALYZE TABLE, особенно после добавления в таблицу большого объема данных.
Естественный порядок
Если у вас есть таблица, которая часто читается, но изменяется редко, попробуйте вместо индексирования отсортировать ее. Для этого используются команды OBDER BY и ALTER TABLE. Чтение будет производиться быстрее и эффективнее.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. Оптимизация производительности. Продолжение.
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Оптимизация производительности | Все о MySQL. Кэширование запросов |