Оптимизация базы данных

Со временем в базу данных сайта добавляется все большее количество информации, что в свою очередь приводит к увеличении ее получения из базы данных, за счет чего увеличивается и время открытия страниц сайта. Решением данной проблемы является оптимизация базы данных.

Одним из способов оптимизации базы данных является сокращение обращений к ней. Сократить обращения возможно отключив на сайте модули и плагины, которые не критичны для работы сайта. Так же в базе данных может присутствовать ненужная информация, такая как старые статьи, комментарии и.т.д, которую следует удалить. В случае присутствия в базе данных ненужных таблиц, их так же требуется удалить.

Более радикальным способом оптимизации базы данных является оптимизация запросов к базе данных. В следующем руководстве собрано множество решений по данному способу — http://www.mysql.ru/docs/man/MySQL_Optimisation.html

Ниже представлен один из способов оптимизации запросов к базе данных.
Допустим на некоторые товары на сайте действует скидка в 20%.
Таким образом запрос к базе данных будет иметь следующий вид:

SELECT * FROM product WHERE sale = 20;

Т.е в данном случае из таблицы product берется вся информация, где поле sale имеет значение 20 и чем больше записей в таблице, тем больше понадобится времени, чтобы сравнить в каждой записи колонку sale со значением 20.

Чтобы поиск совершался без перебора всех записей в таблице, требуется создать индекс на колонку таблицы, выполнив следующий запрос:

CREATE INDEX sale ON product(sale);

Выполнения указанного запроса добавит в индекс информацию о содержании колонки sale, которая и будет использоваться при следующем поиске товаров со скидкой, что значительно сократит время поиска.