Mysql 大查询日期 table
Mysql query date between in large table
我的查询是 运行 大约 10 秒,那是 unacceptable。
我正在寻找提高此速度的方法,但我别无选择。
我必须在 table 超过 1200 万行中找到从现在到 30 天前的记录。
以下查询:
SELECT DATE(DATE) AS FDATE,
SUM(VIEW_COUNT) AS COUNT,
COUNT(IP_ADDRESS) AS CLIENTS
FROM VIEWS
WHERE USERID = 'test'
AND DATE BETWEEN ADDDATE(CURDATE(), INTERVAL -30 DAY) AND CURDATE()
GROUP BY FDATE DESC
我也试过了,效果一样:
SELECT DATE(DATE) AS FDATE,
SUM(VIEW_COUNT) AS COUNT,
COUNT(IP_ADDRESS) AS CLIENTS
FROM VIEWS
WHERE USERID = 'test'
AND DATE >= (DATE(NOW() - INTERVAL 30 DAY) + INTERVAL 0 SECOND)
GROUP BY FDATE DESC
您可以尝试使用 MySQL 索引以在减少查询执行时间方面获得更好的性能。
我的查询是 运行 大约 10 秒,那是 unacceptable。
我正在寻找提高此速度的方法,但我别无选择。 我必须在 table 超过 1200 万行中找到从现在到 30 天前的记录。
以下查询:
SELECT DATE(DATE) AS FDATE,
SUM(VIEW_COUNT) AS COUNT,
COUNT(IP_ADDRESS) AS CLIENTS
FROM VIEWS
WHERE USERID = 'test'
AND DATE BETWEEN ADDDATE(CURDATE(), INTERVAL -30 DAY) AND CURDATE()
GROUP BY FDATE DESC
我也试过了,效果一样:
SELECT DATE(DATE) AS FDATE,
SUM(VIEW_COUNT) AS COUNT,
COUNT(IP_ADDRESS) AS CLIENTS
FROM VIEWS
WHERE USERID = 'test'
AND DATE >= (DATE(NOW() - INTERVAL 30 DAY) + INTERVAL 0 SECOND)
GROUP BY FDATE DESC
您可以尝试使用 MySQL 索引以在减少查询执行时间方面获得更好的性能。