MySQL查询优化?

CMOS

所以我有一个DB约5万行,我试图以优化加载时间。我的数据库具有我认为可以优化的列和索引,因此我假设它是查询。该查询在具有约500万行的表上运行,并返回其中40,但需要101秒。

如果我删除timezone转换,则同一查询将花费0.0015秒,但由于时区不同,返回的结果会略有不同。如何优化以更快的速度获得正确的结果?

SELECT *, date(CONVERT_TZ(eventDate, "US/Eastern", "America/New_York")) as `timezoneDate`
FROM `transactions`
WHERE `isValid` = X
AND `storeID` = X
AND date(CONVERT_TZ(eventDate, "US/Eastern", "America/New_York")) >= '2014-11-19'
AND date(CONVERT_TZ(eventDate, "US/Eastern", "America/New_York")) <= '2014-11-25'
ORDER BY `eventDate` 

同样,如果以前不清楚,我将转换为第二时区的时间取决于用户,所以现在它的America / New_York与US / Eastern相同,但是会更改。

CMOS

我最终要做的是混合使用JRD,TZHX和MarcB的评论。我最终进行了没有时区的选择,但是将选择半径增加了正负一天。这使我的500万行减少到大约50行,但是由于它比我想要的多一点,因此我运行了原始查询,但只运行了第一个选择返回的50个结果。这导致返回所有完全相同的数据,但仅需0.11秒。非常感谢你们!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章