/ / Проблеми з продуктивністю з запитом MySQL - mysql, performance, count

Проблеми продуктивності з запитом MySQL - mysql, performance, count

Я намагаюся отримати кількість елементів, які не є нульовою для стовпця. Наприклад, якщо у вас є щось на зразок цього:

введіть опис зображення тут

і ви хочете отримати номер елементаякі не є нульовими для колонці_назва_1, ви повинні отримати 1. Для column_name_2 ви повинні отримати 2, а для column_name_3 ви повинні отримати 0.

Я використовую цей запит у базі даних MySQL:

SELECT
COUNT(*)
FROM
my_table
WHERE column_name_1 IS NOT NULL
AND [ others conditions ]

Але, ви повинні запустити цей запит для кожного стовпцяі для багатьох елементів (не всіх з них), у мене є проблеми з продуктивністю. Чи знаєте ви, як змінити цей запит, щоб підвищити ефективність?

Відповіді:

0 для відповіді № 1

Ви можете використовувати IF з mysql

SELECT
SUM(IF(col1 IS NULL,1,0)) as Col1,
SUM(IF(col2 IS NULL,1,0)) as Col2,
SUM(IF(col3 IS NULL,1,0)) as Col3
FROM my_table
WHERE [conditions]

Таким чином, ви змінюєте стан IS NULL від місця до вибору