NoSQL最近很火,因為它在K/V儲存的優異效能表現,催生出很多產品,比如:Memcached、MongoDB、Redis、TT等等. 然而他們或多或少都有自己的某些缺陷,比如存在單點、資料安全持久化等等。然而這些隨著新的技術和思路的在MySQL上面產品化,這些東西會被慢慢取代,MySQL重回她的王者地位。在這之前我說過Memcached會被MySQL+handler socket取代,現在情況有所變化,為了相容現有大量的Memcache用戶端,將handler socket用memcached替換掉,就出現了如下構架:
MySQL+InnoDB with Memcached
MySQL+InnoDB with Memcached 具有大量的優勢:
- 可以充分利用現有的memcache client,減少應用程式的變動
- 解決了memcached不具備的資料存放區持久性問題
- 提供了memcached不具備的crash-safe、acid特性、複查查詢的支援、豐富的管理和展示工具
- 解決了平時單獨使用memcached時,cache和資料庫資料一致性的問題,提供更高的效能
- 減少資料冗餘,充分利用好記憶體,降低硬體投入成本
- 在提供高效的k/v訪問的同時,還提供複查的查詢功能,比如排序、join等等
總結:MySQL + InnoDB + Memcached 會顛覆很多原有的多層次cache構架,新的構架能提供更高效能和穩定的儲存和訪問服務,極大的降低開發的複雜度和硬體成本。
另外去年MySQL使用者大會上提到的MySQL Cluster+ Memcached,現在MySQL Cluster 7.2已經開始整合memcached,將充分發揮MySQL CLuster設計上的先天優勢(k/v + sharding), 目前有測試資料(NDBAPI實現)已經達到 200萬+/秒的寫效能(8 server),1000,000 rps (讀,2 server)。架構圖:
MySQL Cluster with Memcached
總結:MySQL Cluster的未來很值得期待。同樣我們可以想象,以後系統後台只有MySQL資料庫,同時提供sql 和 nosql的功能,降低系統複雜度,降低管理和維護成本,降低開發的複雜度和開發週期及成本, 期待啊……