Об'єднання SELECT та UPDATE у MySQL
Спочатку прямо напишу, програмісти, які думають, що виконання одного великого запиту аналогічно маленьким — помиляються. Тепер ми це доведемо.

Приклад:
У цьому прикладі ми виконуємо по черзі дві операції пошуку кількості рядків, які збігаються зі значеннями категорії 1 і 2. Далі ми оновлюємо поля таблиці, значеннями яких будуть знайдені кількості рядків. Результат виконання з експериментальними 10000 рядками дорівнює 0.063 сек.
Тепер об'єднаємо все в один запит:
У цьому прикладі ми виконуємо два SELECT COUNT в одному запиті. При об'єднанні запитів час виконання майже вдвічі швидше - (0.036 сек.)
Це правило працює з усіма запитами: необхідно оптимізувати та зменшувати в розумних цілях кількість усіх запитів до бази даних, щоб заощадити купу часу на їхнє відправлення та розбір.

Приклад:
SELECT COUNT(*) as `select1` FROM `table` WHERE `category` = '1'
SELECT COUNT(*) as `select2` FROM `table` WHERE `category` = '2'
UPDATE `table` SET `value1` = 'select1', `value2` = 'select2' WHERE `user_id` = 1У цьому прикладі ми виконуємо по черзі дві операції пошуку кількості рядків, які збігаються зі значеннями категорії 1 і 2. Далі ми оновлюємо поля таблиці, значеннями яких будуть знайдені кількості рядків. Результат виконання з експериментальними 10000 рядками дорівнює 0.063 сек.
Тепер об'єднаємо все в один запит:
UPDATE `table` SET
`value1` = (SELECT COUNT(*) FROM `table` WHERE `category` = '1'),
`value2` = (SELECT COUNT(*) FROM `table` WHERE `category` = '2')
WHERE `user_id` = 1У цьому прикладі ми виконуємо два SELECT COUNT в одному запиті. При об'єднанні запитів час виконання майже вдвічі швидше - (0.036 сек.)
Це правило працює з усіма запитами: необхідно оптимізувати та зменшувати в розумних цілях кількість усіх запитів до бази даних, щоб заощадити купу часу на їхнє відправлення та розбір.
