小编Din*_*esh的帖子

MySQL 优化 - 年份列分组 - 使用临时表,文件排序

我有一个包含 600,000 条记录的交易表,我需要在财政年度的基础上列出仪表板的计数。使用的表是 MyISAM。我尝试为交易日期 ( tran_date)添加索引。即使它正在使用索引,它也会创建临时表,由于临时表和文件排序需要更多时间。有什么办法可以优化查询以提高查询时间?

SELECT COUNT( * ) AS cnt, CASE WHEN MONTH( tran_date ) >=3
THEN concat( YEAR( tran_date ) , '-', YEAR( tran_date ) +1 )
ELSE concat( YEAR( tran_date ) -1, '-', YEAR( tran_date ) )
END AS 财务年
从`交易1`
WHERE tran_date >= '2010-06-01'
按财务年分组

显示第 0 - 4 行(共 5 行,查询耗时 1.2095 秒)
id select_type table type possible_keys key key_len ref rows Extra
1 简单交易 1 范围 PRIMARY,tran_date tran_date 8 NULL 346485 使用 …

mysql mysql-5 performance optimization mysql-5.5 query-performance

7
推荐指数
1
解决办法
3618
查看次数