безкоштовно з міських телефонів України
Київ | 044 392-73-56 |
Харків | 057 728-49-18 |
Дніпро | 056 790-86-00 |
Одеса | 048 734-56-54 |
Львів | 032 229-58-50 |
Миколаїв | 051 270-12-63 |
Полтава | 053 262-53-74 |
Запоріжжя | 061 228-69-91 |
У процесі додавання до бази даних інформації, розмір таблиць бази даних збільшується і отримання інформації з бази даних йде дедалі більше часу. Прискорити отримання з бази даних допомагає оптимізація 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 будуть відомі.
Див. також:
Інструкція з оптимізації MySQL запитів