我有一个查询可以用相同的结果表达2种不同的方式。哪一个更好 - 出于业绩或其他原因?哪个mySQL日期查询性能更好?
首先查询:
SELECT post_id FROM posts
WHERE post_date BETWEEN '2010-01-01 00:00:00' AND '2010-12-31 23:59:59'
第二个查询:
SELECT post_id FROM posts
WHERE YEAR(post_date)=2010
在此先感谢。
经过基准测试的建议后,我进行了一些搜索和测试。我的测试不是基准测试,因为我的电脑出现了一些问题,但他们给了我一些想法。
我已经测试了我的4000 rowed table,并没有一个重要的区别。 BETWEEN命令在总查询时间为0.09时比YEAR(post_date)多了0.01-0.02秒。看起来使用YEAR(post_date)对于性能和可用性都会有好处。
我了解到,虽然搜索;如果数小时或数分钟并不那么重要,BETWEEN可以使用这样的:
SELECT post_id FROM posts
WHERE post_date BETWEEN '2010-01-01' AND '2010-12-31'
你为什么不自己评测一下? – dbemerlin 2010-07-19 12:41:49
注意:'BETWEEN'2010-01-01'AND'2010-12-31''确实有点*令人惊讶:不包括最后一天,因为它内部扩展为'BETWEEN'2010-01-01 00 :00:00'AND'2010-12-31 00:00:00'' – Piskvor 2010-11-19 19:22:36
@dbemerlin:因为其他人(像我)可以来看看其他人的答案和结果。 – 2011-02-02 15:58:33