Mycat分表分庫原則
分表分庫雖然能解決大表對資料庫系統的壓力,但它並不是萬能的,也有一些不利之處,因此首要問題是,分不分庫,分哪些庫,什麼規則分,分多少分片。
原則一:能不分就不分,1000萬以內的表,不建議分片,透過合適的索引,讀寫分離等方式,可以很好的解決效能問題。
原則二:分片數量儘量少,分片儘量均勻分佈在多個DataHost上,因為一個查詢SQL跨分片越多,則總體效能越差,雖然要好於所有資料在一個分片的結果,只在必要的時候進行擴容,增加分片數量。
原則三:分片規則需要慎重選擇,分片規則的選擇,需要考慮資料的增長模式,資料的訪問模式,分片關聯性問題,以及分片擴容問題,最近的分片策略為範圍分片,列舉分片,一致性Hash分片,這幾種分片都有利於擴容
原則四:儘量不要在一個事務中的SQL跨越多個分片,分散式事務一直是個不好處理的問題
原則五:查詢條件儘量最佳化,儘量避免Select * 的方式,大量資料結果集下,會消耗大量頻寬和CPU資源,查詢儘量避免返回大量結果集,並且儘量為頻繁使用的查詢語句建立索引。
如果某個表的資料有明顯的時間特徵,比如訂單、交易記錄等,則他們通常比較合適用時間範圍分片,因為具有時效性的資料,我們往往關注其近期的資料,查詢條件中往往帶有時間欄位進行過濾,比較好的方案是,當前活躍的資料,採用跨度比較短的時間段進行分片,而歷史性的資料,則採用比較長的跨度儲存。
總體上來說,分片的選擇是取決於最頻繁的查詢SQL的條件,因為不帶任何Where語句的查詢SQL,會便利所有的分片,效能相對最差,因此這種SQL越多,對系統的影響越大,所以我們要儘量避免這種SQL的產生。
原則一:能不分就不分,1000萬以內的表,不建議分片,透過合適的索引,讀寫分離等方式,可以很好的解決效能問題。
原則二:分片數量儘量少,分片儘量均勻分佈在多個DataHost上,因為一個查詢SQL跨分片越多,則總體效能越差,雖然要好於所有資料在一個分片的結果,只在必要的時候進行擴容,增加分片數量。
原則三:分片規則需要慎重選擇,分片規則的選擇,需要考慮資料的增長模式,資料的訪問模式,分片關聯性問題,以及分片擴容問題,最近的分片策略為範圍分片,列舉分片,一致性Hash分片,這幾種分片都有利於擴容
原則四:儘量不要在一個事務中的SQL跨越多個分片,分散式事務一直是個不好處理的問題
原則五:查詢條件儘量最佳化,儘量避免Select * 的方式,大量資料結果集下,會消耗大量頻寬和CPU資源,查詢儘量避免返回大量結果集,並且儘量為頻繁使用的查詢語句建立索引。
如果某個表的資料有明顯的時間特徵,比如訂單、交易記錄等,則他們通常比較合適用時間範圍分片,因為具有時效性的資料,我們往往關注其近期的資料,查詢條件中往往帶有時間欄位進行過濾,比較好的方案是,當前活躍的資料,採用跨度比較短的時間段進行分片,而歷史性的資料,則採用比較長的跨度儲存。
總體上來說,分片的選擇是取決於最頻繁的查詢SQL的條件,因為不帶任何Where語句的查詢SQL,會便利所有的分片,效能相對最差,因此這種SQL越多,對系統的影響越大,所以我們要儘量避免這種SQL的產生。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2137176/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mycat配置分庫分表
- Mycat分庫分表配置
- Mycat分庫分表(一)
- MySQL分庫分表的原則MySql
- MyCat分庫分表、讀寫分離
- Mycat 讀寫分離+分庫分表
- Linux MySQL分庫分表之MycatLinuxMySql
- mycat和sharding JDBC分庫分表JDBC
- Mycat分庫分表的簡單實踐
- Mycat垂直分庫
- MySQL運維9-Mycat分庫分表之列舉分片MySql運維
- 分散式資料庫中介軟體 MyCat | 分庫分表實踐分散式資料庫
- 基於代理的資料庫分庫分表框架 Mycat實踐資料庫框架
- 你們要的MyCat實現MySQL分庫分表來了MySql
- MySQL運維12-Mycat分庫分表之按天分片MySql運維
- Mycat讀寫分離、主從切換、分庫分表的操作記錄
- MySQL運維11-Mycat分庫分表之應用指定分片MySql運維
- MyCat 讀寫分離 資料庫分庫分表 中介軟體 安裝部署,及簡單使用資料庫
- 分庫分表系列:分庫分表的前世今生
- 分庫分表
- MySQL運維10-Mycat分庫分表之一致性雜湊分片MySql運維
- 分庫分表之歷史表如何選擇最佳分片路由規則路由
- 分庫分表注意
- MySQL分庫分表MySql
- [Mysql]分庫分表MySql
- MySQL運維6-Mycat垂直分庫MySql運維
- “分庫分表” ?選型和流程要慎重,否則會失控
- “分庫分表" ?選型和流程要慎重,否則會失控
- 資料庫分庫分表資料庫
- MySQL運維8-Mycat範圍分表MySql運維
- 徹底搞清MySQL分庫分表(垂直分庫,垂直分表,水平分庫,水平分表)MySql
- 微服務劃分原則微服務
- 分庫分表總結
- 常用分庫分表方案
- Mysql分庫分表方案MySql
- 【Mysql】OneProxy分庫分表MySql
- 基因法分庫分表
- [資料庫][分庫分表]分庫分表之後,id主鍵如何處理資料庫