MySQL Индексы

Файловая система и MySQL

В MySQL информация хранится в файлах. А что такое файл? Это не атомарная величина, а совокупность блоков информации, разбросанных по диску. Если блоков много, и нужно перебирать все – то поиск значительно затрудняется.

Для решения задачи быстрого поиска по базе и создан индекс – преобразованный набор значений. К примеру, у нас есть запись в базе “Вася Пупкин”. Система по некоторому правилу его преобразует в число, например “17”. А при попытке поиска – решается обратная задача – если запросили “Вася Пупкин”, значит ищем число 17 и отображаем запись. Это похоже на алфавиные буквы в старых телефонных справочниках.

Когда сам разбирался, наткнулся на классную статью. Она мне настолько понравилась, что я загрузил её на свой сервер. Если хотите разобраться в этой теме – советую прочитать. MySQL Индексы

Как создать индексы в MySQL?

1

Теперь оператор Select будет работать гораздо быстрее…

Можно создать уникальные индексы, для полей, записи, которых уникальны…

2

Когда использовать составные индексы ?

Если мы делаем запросы сразу по нескольким полям, например по 2-м, …..where age>23 and sex=male… тогда лучше использовать составной индекс. Он эффективен при использовании AND…

3

 

 

Как проверить эффективность индекса?

4

 

Как удалить индекс?

DROP INDEX index_name ON table_name

Как включить slow log в MySQL?

Чтобы включить лог медленных запросов, нужно открыть конфигурационный файл MySQL (путь может отличаться):

5

и поправить там настройки:

6

  • log_slow_queries указывает путь к файлу настроек
  • long_query_time указывает минимальное время выполнения запроса, после которого он считается медленным в секундах,

После этого необходимо перезапустить MySQL:

/etc/init.d/mysql restart

После этого в файл /var/log/mysql/mysql-slow.log будут попадать медленные запросы, которые Вам прийдется оптимизировать.


[block id=”mysql-first-steps”]

Добавить комментарий