我有一個查詢可以用相同的結果表達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