數據庫如何實施垂直拆分,原理是啥?
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
水平切分是指,以某個字段為依據(例如uid),按照一定規則(例如取模),將一個庫(表)上的數據拆分到多個庫(表)上,以降低單庫(表)大小,達到提升性能的目的的數據庫架構設計方法。 水平切分后,各個庫(表)的特點是: 1. 每個庫(表)的結構都一樣; 2. 每個庫(表)的數據都不一樣,沒有交集; 3. 所有庫(表)的并集是全量數據; 垂直拆分是指,將一個屬性較多,一行數據較大的表,將不同的屬性拆分到不同的表中,以降低單庫(表)大小,達到提升性能的數據庫架構設計方法。 垂直切分后,各個庫(表)的特點是: 1. 每個庫(表)的結構都不一樣; 2. 一般來說,每個庫(表)的屬性至少有一列交集,一般是主鍵; 3. 所有庫(表)的并集是全量數據; 舉個例子,用戶表:
垂直拆分之后,可能變成兩個這樣的表:
3. 在內存有限,緩沖池大小固定的情況下,長度較短的row,能緩存更多數據; 4. 緩存高頻的列column,能提升緩沖池命中率,減少磁盤IO; 舉個例子: 1. 假設數據庫內存buffer為1G,未拆分的user表1行數據大小為1k,那么只能緩存100w行數據; 知其然,知其所以然。 思路比結論更重要。 文章很短,3分鐘搞定。 ==全文完== 閱讀原文:原文鏈接 該文章在 2025/1/2 12:21:41 編輯過 |
關鍵字查詢
相關文章
正在查詢... |