對於大型資料集,整數索引比日期時間索引更快嗎?
Nov 02, 2024 am 11:36 AMMySQL 索引比較:整數與DateTime
雖然之前的討論比較了沒有索引的Timestamp 和DateTime 欄位類型,但這次查詢特別注意在具有數百萬筆記錄的InnoDB 表中,帶有索引的DateTime 與索引的int 的效能比較。
在這些場景中,帶條件的查詢是基於:
- 帶索引的 DateTime: 利用 DateTime 列上的索引。
- 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中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)
