mysql資料庫應付大流量網站的的3種架構擴充套件方式介紹
資料庫擴充套件大概分為以下幾個步驟:
1、讀寫分離:當資料庫訪問量還不是很大的時候,我們可以適當增加伺服器,資料庫主從複製的方式將讀寫分離;
2、垂直分割槽:當寫入操作一旦增加的時候,那麼主從資料庫將花更多的時間的放在資料同步上,這個時候伺服器也是不堪重負的;那麼就有了資料的垂直分割槽,資料的垂直分割槽思路是將寫入操作比較頻繁的資料表,如使用者表_user,或者訂單表_orders,那麼我們就可以把這個兩個表分離出來,放在不同的伺服器,如果這兩個表和其他表存在聯表查詢,那麼就只能把原來的sql語句給拆分了,先查詢一個表,在查詢另一個,雖然說這個會消耗更過效能,但比起那種大量資料同步,負擔還是減輕了不少;
3、水平分割槽:但是往往事情不盡人意,可能採取垂直分割槽能撐一段時間,由於網站太火了,訪問量又每日100w,一下子蹦到了1000w,這個時候可以採取資料的進行分離,我們可以根據user的Id不同進行分配,如採取%2的形式,或者%10的形式,當然這種形式對以後的擴充套件有了很大的限制,當我由10個分割槽增加到20個的時候,所有的資料都得重新分割槽,那麼將是一個的很龐大的計算量;以下提供幾種常見的演算法:
雜湊演算法:就是採用user_id%的方式;
範圍:可以根據user_id字元值範圍分割槽,如1-1000為一區,1001-2000則是另一個區等;
對映關係:就是將user_id存在的所對應的分割槽放在資料庫中儲存,當使用者操作時先去查詢所在分割槽,再進行操作;
對於以上幾種擴充套件方式,讀寫分離主要是操作上的擴充套件,垂直分割槽主要是對寫入較頻繁資料表的分離,水平分割槽主要是資料分離;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4289/viewspace-2804845/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 3 種擴充套件 Kubernetes 能力的方式套件
- PHP的SPL擴充套件庫(一)資料結構PHP套件資料結構
- 以對話的方式擴充套件架構的實踐 - Andrew套件架構
- 谷歌的三大可擴充套件核心架構谷歌套件架構
- 微服務架構中資料庫擴充套件和最佳化微服務架構資料庫套件
- 微服務架構:自動擴充套件簡介微服務架構套件
- 簡單介紹mysql中資料庫覆蓋匯入的幾種方式MySql資料庫
- 大資料——Scala擴充套件大資料套件
- C 擴充套件庫 – mysql API套件MySqlAPI
- SAP S/4HANA Cloud 上 in-app 和 side-by-side 兩種擴充套件方式的介紹CloudAPPIDE套件
- Django與微服務架構:構建可擴充套件的Web應用Django微服務架構套件Web
- Laravel-admin 新增擴充套件介紹Laravel套件
- 微服務架構擴充套件FreeStyle微服務架構套件
- 基於PostgreSQL各種擴充套件派生的開源資料庫名單SQL套件資料庫
- 網站開啟提示:”未檢測到您伺服器環境的sqlite3資料庫擴充套件...“網站伺服器SQLite資料庫套件
- 如何透過連線資料庫的方式對線下應用進行線上擴充套件資料庫套件
- 資料庫 Mysql 邏輯架構簡介資料庫MySql架構
- oracle資料庫透過sqlplus連線的幾種方式介紹Oracle資料庫SQL
- MySQL InnoDB的索引擴充套件MySql索引套件
- PHP FFI詳解 - 一種全新的PHP擴充套件方式PHP套件
- SAP Spartacus checkout 流程的擴充套件(extend)實現介紹套件
- SAPS/4HANAextensibility擴充套件原理介紹套件
- 分享一些好用的資源(擴充套件、介面、網站)套件網站
- 崑崙分散式資料庫架構介紹分散式資料庫架構
- 簡要剖析:可擴充套件的微服務架構套件微服務架構
- pbootcms 網站開啟提示:未檢測到您伺服器環境的sqlite3資料庫擴充套件...boot網站伺服器SQLite資料庫套件
- PbootCMS網站開啟提示:”未檢測到您伺服器環境的sqlite3資料庫擴充套件...“boot網站伺服器SQLite資料庫套件
- SpringCloudGateway資料庫儲存路由資訊的擴充套件方案SpringGCCloudGateway資料庫路由套件
- 使用nub恢復資料庫的知識擴充套件資料庫套件
- DLR 的擴充套件庫 Dynamitey套件MIT
- MySQL 高擴充套件架構構建百萬線上系統實踐MySql套件架構
- 介紹兩個好玩的和Github相關的Chrome擴充套件GithubChrome套件
- windbg除錯系列教程:sos擴充套件的介紹和使用除錯套件
- MySql資料庫備份的幾種方式MySql資料庫
- Python操作MySQL資料庫的5種方式PythonMySql資料庫
- mysql的 information_schema 資料庫介紹MySqlORM資料庫
- MySQL資料庫鎖介紹MySql資料庫
- mysql資料庫的基礎架構MySql資料庫架構