Оптимізація запитів до 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. Найголовніше правило - це перше, його необхідно дотримуватися завжди, інакше проблем з продуктивністю скрипта не уникнути.
Як зробити підписку на сайті (v2)
Як дізнатися кількість записів в sql-вибірці
Як дізнатися останній id в mysql
Як знайти помилку в sql-запиті
Nodejs. Що таке query strings.
Як зробити коментування на сайті
Як дізнатися, скільки змінилося рядків після update
Як дізнатися синтаксис sql-запиту через phpmyadmin
Nodejs. Як обробляти post запити.
Конструкція where в sql
Перевірка зайнятості логіна на ajax
Багаторівневе меню на php і mysql
Випадкова вибірка з бази даних
Запит sql на вибірку записів
Sql-запити для роботи з таблицями
Клас для роботи з базою даних
Відправка get-запитів в curl
Підключення до бази даних в php
Автоматичне резервне копіювання на php
Відправлення запитів до бази даних в php
Function fetch_assoc () on a non-object
Function fetch_assoc () on a non-object
Nodejs. Що таке query strings.
Як зробити коментування на сайті
Запит sql для сортування результату вибірки
Запит sql на вибірку записів
Як дізнатися кількість записів в sql-вибірці
Як знайти помилку в sql-запиті
Відправлення запитів до бази даних в php
Відправка get-запитів в curl
Nodejs. Як обробляти post запити.