Введіть ім'я домену:
.ua .com.ua .in.ua .org.ua
.ru .com .net .org
Показати всі домени

Інструкція з оптимізації MySQL запитів

Відповіді на запитання від компанії "Український хостинг".

Оптимізація mysql запитів

У процесі додавання до бази даних інформації, розмір таблиць бази даних збільшується і отримання інформації з бази даних йде дедалі більше часу. Прискорити отримання з бази даних допомагає оптимізація MySQL запитів. На даний момент значна частина сайтів створюється на базі CMS (систем керування вмістом сайту), в яких є можливість встановлення додаткових модулів та плагінів, деякі з яких можуть виконувати додаткові запити до бази даних. У зв'язку з цим рекомендується відключити непотрібні модулі та плагіни, щоб знизити навантаження на сервер MySQL. Так само в базі даних можуть бути старі статті, коментарі і т.д., які вже не актуальні, але збільшують розмір бази даних, у зв'язку з чим рекомендується видалити весь непотрібний контент з бази даних. Якщо після виконання зазначених кроків швидкість отримання інформації з бази даних все ще буде недостатньо прийнятною, слід вдатися до оптимізації MySQL запитів. Побачити різні варіанти оптимізації запитів до бази даних можна на наступному ресурсі - http://www.mysql.ru/docs/man/MySQL_Optimisation.html

Один із таких варіантів представлений нижче.

Допустимо в базі даних є таблиця з продуктами, серед яких потрібно знайти продукти із ціною 30.

Запит до бази даних, в даному випадку, буде виглядати так:

 SELECT * FROM product WHERE price = 30

Тобто з таблиці зі списком товарів (product) береться вся інформація, де вартість (price) відповідає 30.

При такому запиті вся таблиця product буде перевірена щодо збігу записів у колонці price зі значенням 30.

Час виконання такого запиту залежатиме від розміру таблиці product.

Якщо таблиця product велика, слід розглянути варіант її оптимізації.

Оптимізувати таблицю можна з допомогою створення індексу на колонку таблиці.

Для цього потрібно виконати наступний запит MySQL:

 CREATE INDEX price ON product(price);

Даний запит збереже вміст колонки price і при наступному зверненні до цієї колонки вже не потрібно перевіряти всю таблицю product на збіг значення 30 в колонці price, тому всі значення в колонці price будуть відомі.

Див. також:

Будь ласка, виберіть мову сайту за промовчанням: