我有一个包含 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