我在动态字段上应用group by 哪个mysql系统变量提高了速度?
例如:tmp_table_size或max_heap_table_size或任何其他......
我的表大小为700 MB,解释给我“使用索引条件;使用临时;使用filesort”
我的查询如下:
SELECT
IF(
flag IN ('A', 'B')
'featured',
'normal'
) AS package,
IF(
flag2 = 'A',
'group1',
'group2'
) AS group_num,
COUNT(*) AS total
FROM
mytable
WHERE publish = 1
AND status IN ('on', 'deleted', 'expired',)
GROUP BY customized_flag,
agency_package_status ;
答案 0 :(得分:1)
可能加速查询的唯一内容是
INDEX(publish, status) -- in that order.
这可能会过滤到700MB的一小部分。
您的GROUP BY
已损坏 - 您将无法预测'输出中group_num
的值,因为它似乎不依赖于customized_flag
或agency_package_status
。