對於大型資料集,整數索引比日期時間索引更快嗎?

Susan Sarandon
發布: 2024-11-02 11:36:02
原創
781 人瀏覽過

 Is Integer Indexing Faster Than DateTime Indexing for Large Datasets?

MySQL 索引比較:整數與DateTime

雖然之前的討論比較了沒有索引的Timestamp 和DateTime 欄位類型,但這次查詢特別注意在具有數百萬筆記錄的InnoDB 表中,帶有索引的DateTime 與索引的int 的效能比較。

在這些場景中,帶條件的查詢是基於:

  1. 帶索引的 DateTime: 利用 DateTime 列上的索引。
  2. int with index: 利用 DateTime 值的整數(UNIX 時間戳)表示形式上的索引。

實證評估

使用MySQL 5.1.41 和1000 萬筆記錄的初始測試顯示int 具有顯著的速度優勢:

Query DateTime with Index (sec) int with Index (sec)
COUNT(*) 120.27 25.02
BETWEEN 8.41 1.56

解釋

int的效率歸功於索引可以直接與查詢條件進行比較,無需MySQL解析和轉換日期。相反,DateTime 需要額外的處理來提取和比較日期和時間分量。

其他注意事項

對儲存在同一表中的兩種欄位類型進行的後續測試產生了相似的結果效能,表明MySQL 可以透過識別DateTime和int 值的等價性來最佳化查詢。

結論

根據這些結果,建議存儲日期和時間如果基於索引的查詢的性能至關重要,則為 int(UNIX 時間戳)。這種最佳化可以顯著減少查詢執行時間,特別是在具有頻繁基於日期的條件的大型資料庫中。

以上是對於大型資料集,整數索引比日期時間索引更快嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!