我有一个 MySQL 查询:
SELECT date(FROM_UNIXTIME(time)) as date,
count(view) as views
FROM ('table_1')
WHERE 'address' = 1
GROUP BY date(FROM_UNIXTIME(time))
在哪里
view
:自动增量和主键,(int(11))
address
:索引,(int(11))
time
:索引,(int(11))
表的总行数为:270k
这个查询执行缓慢,在 mysql-slow.log 我得到:
Query_time:1.839096
Lock_time:0.000042
Rows_sent:155
Rows_examined:286435
使用EXPLAIN
如下所示:
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE table_1 ref address address 5 const 139138 使用 where;使用临时的;使用文件排序
如何改进此查询以加快执行速度?如果我在 PHP 中更改日期可能会更好?但我认为在 PHP 中将日期作为时间戳,然后转换为人类可读,并使“分组依据”比 MySQL 中的一个查询花费更多时间。
也许有人知道如何使这个查询更快?