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

Оптимізація запитів до MySQL

Відео: Як оптимізувати MySQL запити з Query Profiler від Devart - [Переклад]

У попередній статті я писав про оптимізації PHP, і я подумав, що корисно буде знати не тільки, як оптимізувати PHP-код, але і як оптимізувати запити до MySQL, які часто дуже часто посилаються. Отже, їх оптимізація може дати хороший приріст до продуктивності скрипта.

Не пишіть запити в циклі

Ця помилка дуже багатьох новачків, які виконують 100 запитів в циклі. Давайте подивимося на приклад такої помилки:

lt ;?php
for($ i =1- $ i lt;100- $ i++)
$ result_set
= $ mysqli-gt;query("SELECT * FROM` table` WHERE `id` = `$ id`") -
?gt;



Помилка ця дуже серйозна, і тут дійсно виникнуть дуже великі проблеми з продуктивністю. Подібні запити треба виконувати так:

Відео: SQL запит EXPLAIN і EXPLAIN QUERY PLAN в базах даних SQLite: оптимізація SQL запитів

lt ;?php
$ result_set
= $ mysqli-gt;query("SELECT * FROM` table` WHERE `id` lt; 100 ") -
?gt;

Результат буде практично таким же (тільки все відразу в одному $ result_set), А швидкість збільшиться багаторазово.

При вибірці вказуйте тільки необхідні поля




У попередньому прикладі ми з Вами писали: "SELECT * FROM"- це не є добре, тому що вибірка по всіх поля (*) Гальмує виконання запиту. Тому по можливості намагайтеся виводити лише необхідні поля, а не все відразу.

Відео: sql-запити до бази даних з php

Не використовуйте ORDER BY RAND () у великих таблицях

Якщо в таблиці кілька тисяч записів, то вкрай неефективне витягувати випадкову запис за допомогою ORDER BY RAND (). Набагато краще буде написати так:

lt ;?php
$ n_rand
= mt_rand(1, $ mysqli-gt;query("SELECT MAX (id) FROM` table` ")) -
$ result_set
= $ mysqli-gt;query("SELECT * FROM` table` WHERE `id` = `$ n_rand`") -
?gt;

Це було кілька зауважень з приводу того, як оптимізувати запити до MySQL. Найголовніше правило - це перше, його необхідно дотримуватися завжди, інакше проблем з продуктивністю скрипта не уникнути.

Поділися в соціальних мережах:

Схожі
Function fetch_assoc () on a non-objectFunction fetch_assoc () on a non-object
Nodejs. Що таке query strings.Nodejs. Що таке query strings.
Як зробити коментування на сайтіЯк зробити коментування на сайті
Запит sql для сортування результату вибіркиЗапит sql для сортування результату вибірки
Запит sql на вибірку записівЗапит sql на вибірку записів
Як дізнатися кількість записів в sql-вибірціЯк дізнатися кількість записів в sql-вибірці
Як знайти помилку в sql-запитіЯк знайти помилку в sql-запиті
Відправлення запитів до бази даних в phpВідправлення запитів до бази даних в php
Відправка get-запитів в curlВідправка get-запитів в curl
Nodejs. Як обробляти post запити.Nodejs. Як обробляти post запити.
» » Оптимізація запитів до mysql