Mysql
在沒有物理分佈的情況下將 mysql 表拆分成更小的表有什麼好處?
我在公司見過這樣的設計。
一個大的mysql表在同一個db的同一個伺服器上拆分成幾十個相同schema的小表,沒有任何物理分佈,沒有innodb_file_per_table,沒有分區等。數據分佈均勻,讀/寫訪問模式統一在所有表中。
在性能方面這樣做有什麼好處?
如果您的讀/寫分佈均勻,我認為沒有性能優勢。例如,如果您寫得很重並且只寫了 2-3 個表格,那麼您可能會受益(參見本展示文稿的幻燈片 28-34)。
關於運營收益的一些想法:
- 一旦數據過多或流量過多,擴展/分片會更容易。
- 根據備份的製作方式,如果您可以確定失去數據位於哪個表中,則恢復某些內容可能會更快。
**編輯:**再想一想:如果查詢是並行執行的,可能會有性能優勢——如果工作集適合記憶體,您可以從 RAID 獲得更多 IOPS,並更好地本地化多核系統。