Mysql

為什麼不分區?

  • August 11, 2015

什麼時候不想對數據庫進行分區?(思考MySQL 分區

就我而言

  • 我將從幾百萬行開始,它應該從那裡增長。
  • 用作最頻繁查詢限制的字元欄位上的主鍵(並且查找很頻繁 - 至少每秒幾次)。
  • 主鍵將被散列以用作分區鍵
  • 將對上述頻繁查詢中提取的每一行進行更新
  • 不太頻繁的查找(針對日期列或其他)將需要命中所有分區

即使對於最後一點,查找不是並行執行的,所以在所有情況下,這是一個勝利嗎?分區的缺點是什麼?為什麼不是每個人都預設使用它,至少當您查看一百萬條以上記錄時?

更新 - 我選擇了 zgguy 的答案,但請注意,我在自己的研究結果中添加了自己的答案,包括指向對我非常有用的類似問題的非常好的答案的連結。

性能問題沒有靈丹妙藥,分區也不是。

每個分區本質上都是一個自己的表。因此,以允許數據庫僅在一個分區中查找行的方式編寫的查詢會變得更快。對於需要掃描整個大表的查詢來說,差異可能很大,但可能會限制自己只掃描分區表中的一個分區。對於唯一鍵查找,差異要小得多。

但是,以需要數據庫訪問所有或大部分錶(索引)分區的方式使用索引查找的查詢將執行得相當慢。

並行執行本身就是一個主題。如果您在夜間執行大批量,並讓整台機器完成這項工作,那麼它的並行化是一件好事。但是,在數據庫不斷為來自許多並髮使用者的查詢提供服務的 OLTP 系統中,您不希望一個使用者佔用所有資源。

引用自:https://dba.stackexchange.com/questions/107408