1. 程式人生 > >Mycat分表分庫怎麽分?Mysql DBA學習

Mycat分表分庫怎麽分?Mysql DBA學習

mysql數據庫 數據庫管理員 數據庫架構師 數據庫工程師 北京mysql

Mycat分表分庫雖然能解決大表對數據庫系統的壓力,但也有一些不利,因此Mycat分表分庫要先解決的問題是,分不分庫,分哪些庫,什麽規則分,分多少分片。那麽究竟是怎麽分的呢?

1、能不分就不分,1000萬以內的表,不建議分片,通過合適的索引,讀寫分離等方式,可以很好的解決性能問題。

2、分片數量盡量少,分片盡量均勻分布在多個DataHost上,因為一個查詢SQL跨分片越多,則總體性能越差,雖然要好於所有數據在一個分片的結果,只在必要的時候進行擴容,增加分片數量。

3、分片規則需要慎重選擇,分片規則的選擇,需要考慮數據的增長模式,數據的訪問模式,分片關聯性問題,以及分片擴容問題,最近的分片策略為範圍分片,枚舉分片,一致性Hash分片,這幾種分片都有利於擴容。

4、盡量不要在一個事務中的SQL跨越多個分片,分布式事務一直是個不好處理的問題

5、查詢條件盡量優化,盡量避免Select * 的方式,大量數據結果集下,會消耗大量帶寬和CPU資源,查詢盡量避免返回大量結果集,並且盡量為頻繁使用的查詢語句建立索引。

總體上來說,分片的選擇是取決於最頻繁的查詢SQL的條件,因為不帶任何Where語句的查詢SQL,會便利所有的分片,性能相對最差,因此這種SQL越多,對系統的影響越大,所以我們要盡量避免這種SQL的產生。

互聯網企業大多用的數據庫是MySQL的,想要眾多的IT工作者中脫穎而出,就需要擁有高深的技術,學習增值是必不可少的。學習之路,是貴在堅持的。老男孩教育MySQL DBA課程,幾經更新課程,杜絕紙上談兵,全企業真實案例結合理論授課,想深入的學習MySQL DBA的知識,可以關註下老男孩教育。


Mycat分表分庫怎麽分?Mysql DBA學習