Файловая система и MySQL
В MySQL информация хранится в файлах. А что такое файл? Это не атомарная величина, а совокупность блоков информации, разбросанных по диску. Если блоков много, и нужно перебирать все – то поиск значительно затрудняется.
Для решения задачи быстрого поиска по базе и создан индекс – преобразованный набор значений. К примеру, у нас есть запись в базе “Вася Пупкин”. Система по некоторому правилу его преобразует в число, например “17”. А при попытке поиска – решается обратная задача – если запросили “Вася Пупкин”, значит ищем число 17 и отображаем запись. Это похоже на алфавиные буквы в старых телефонных справочниках.
Когда сам разбирался, наткнулся на классную статью. Она мне настолько понравилась, что я загрузил её на свой сервер. Если хотите разобраться в этой теме – советую прочитать. MySQL Индексы
Как создать индексы в MySQL?
Теперь оператор Select будет работать гораздо быстрее…
Можно создать уникальные индексы, для полей, записи, которых уникальны…
Когда использовать составные индексы ?
Если мы делаем запросы сразу по нескольким полям, например по 2-м, …..where age>23 and sex=male… тогда лучше использовать составной индекс. Он эффективен при использовании AND…
Как проверить эффективность индекса?
Как удалить индекс?
DROP INDEX index_name ON table_name
Как включить slow log в MySQL?
Чтобы включить лог медленных запросов, нужно открыть конфигурационный файл MySQL (путь может отличаться):
и поправить там настройки:
- log_slow_queries указывает путь к файлу настроек
- long_query_time указывает минимальное время выполнения запроса, после которого он считается медленным в секундах,
После этого необходимо перезапустить MySQL:
/etc/init.d/mysql restart
После этого в файл /var/log/mysql/mysql-slow.log будут попадать медленные запросы, которые Вам прийдется оптимизировать.
[block id=”mysql-first-steps”]