strace 分析mysql 内存占用_关于mysql cluster适用场景的分析
前言:
mysql cluster作為mysql官方的一個集群軟件,一直是不溫不火的存在,用的較多的仍是mysql-server,本文就基于mysql cluster的特性,分析一下什么場景下適合使用mysql cluster。
1.介紹
MySQL Cluster 是一個高性能、可擴展、集群化數據庫產品,其研發設計的初衷就是要滿足電信業中許多的業界最嚴酷應用要求。這些電信應用中經常要求數據庫運行的可靠性要達到99.999%。
不過目前的MySQL Cluster已經不僅僅應用于傳統的電信業務中,它還被廣泛的應用在VOIP、網絡計費,session管理,電子商務網站,搜索引擎,甚至是傳統的內勤應用中。
簡單的說,MySQLCluster實際上是在無共享存儲設備的情況下實現的一種完全分布式數據庫系統,具備高可用、高冗余的特性。它由一組計算機構成,每臺計算機上均運行著多種進程,包括MySQL服務器,NDB Cluster的數據節點,管理服務器,以及(可能)專門的數據訪問程序。
MySQL Cluster主要通過NDBCluster(簡稱NDB)存儲引擎來實現,該技術允許在無共享的系統中部署“內存中”數據庫的 Cluster。通過無共享體系結構,系統能夠使用廉價的硬件,而且對軟硬件無特殊要求。此外,由于每個組件有自己的內存和磁盤,不存在單點故障。
從市場來看,使用mysql cluster的公司也不在少數:
2.mysql cluster的部分特性
1)可擴展性強,支持在線擴容
2)數據一致性好
3)通過無共享體系結構,系統能夠使用廉價的硬件,而且對軟硬件無特殊要求
4) 99.999 %的高可用性
5)快速的自動失效切換
6)靈活的分布式體系結構,沒有單點故障
7)高吞吐量和低延遲
8)支持nosql
9)符合 ACID 要求的事務型數據庫
10)自動數據分片
3.mysql cluster的缺點
1)不支持外鍵
2)數據行不能超過8K
3)部署、管理、配置很復雜
4)占用內存較大
5)備份恢復不便
6)復雜的SQL查詢性能一般
7)因節點間通過網絡實現通訊和數據同步、查詢等操作,整體性受網絡速度影響較大
8)內存中的數據有丟失的風險
4.mysql cluster與NOSQL(MongoDB)的比較
1)mysql cluster擁有完整的ACID屬性,遵守SQL標準,可以在RDBMS間無縫遷移,部署配置復雜,索引組織表。
2)MongoDB使用集合表示數據,不擁有ACID屬性,無類型,支持快速部署及快速開發,堆組織表。
5.mysql cluster與memory存儲引擎的比較
1)mysql cluster支持行鎖,能更好的支持并發,數據可存儲到磁盤,分布式的特性保證無單點故障,高可用性,數據自動分片,支持變長數據類型。
2)memory存儲引擎支持表鎖,并發性能不好,數據只能存儲到內存中,有丟失的風險。不支持變長數據類型,操作、運維較方便。
6.總結:
綜上所述,mysql cluster適合的場景為:具有非常高的并發需求,對可用性要求較高,或是數據需要分片的遵守SQL標準的傳統RDBMS系統。
如下是較理想的應用環境:
大容量 OLTP
實時分析
支持欺詐檢測的電子商務和金融交易
移動和小額支付
會話管理和緩存
串流派送、分析和推薦
內容管理和交付
大型多人在線游戲
通信和位置服務
使用者/用戶資料管理和授權
7.參考資料
1.MySQL Cluster初步學習資料 http://blog.csdn.net/mchdba/article/details/10544585
2.MySQL Cluster 與 MongoDB集群 http://www.linuxidc.com/Linux/2012-04/58576.htm
3.Memory 與 MySQL Cluster的比較 http://www.cnblogs.com/isenhome/archive/2013/03/25/db.html
4.MySQL Cluster集群探索與實踐 http://www.searchtb.com/2012/07/mysql-cluster.html
5.MySQL Cluster 常見問題解答 http://www.mysql.com/products/cluster/faq.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的strace 分析mysql 内存占用_关于mysql cluster适用场景的分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: activiti7 和业务_上市公司区块
- 下一篇: asynchttpclient 超时_深