分布式項目怎么部署 mysql分布式集群的搭建方案?
mysql分布式集群的搭建方案?在mysql中,首先建立LNMP或lamp環(huán)境,然后根據(jù)主從或主從方案,準備三個在該環(huán)境中構(gòu)建的虛擬機,。mysql表數(shù)據(jù)量太大,達到了1億多條數(shù)據(jù),除了分庫分表之外,
mysql分布式集群的搭建方案?
在mysql中,首先建立LNMP或lamp環(huán)境,然后根據(jù)主從或主從方案,準備三個在該環(huán)境中構(gòu)建的虛擬機,。
mysql表數(shù)據(jù)量太大,達到了1億多條數(shù)據(jù),除了分庫分表之外,還有沒有其他的解決方式?
在正常配置下,MySQL只能承載2000萬數(shù)據(jù)(同時讀寫,表中有大文本字段,單服務(wù)器)?,F(xiàn)在已經(jīng)超過1億,而且還在增加,建議按以下方式處理:
1子表。它可以按時間或一定的規(guī)則進行拆分,以便盡可能地查詢子表中的數(shù)據(jù)庫。這是最有效的方法。特別是寫,放入一個新表,并定期同步。如果記錄不斷更新,最好將寫入的數(shù)據(jù)放在redis中,并定期同步表3的大文本字段,將它們分隔成一個新的獨立表。對于較大的文本字段,可以使用NoSQL數(shù)據(jù)庫
4優(yōu)化體系結(jié)構(gòu),或者優(yōu)化SQL查詢,避免聯(lián)合表查詢,盡量不要使用count(*)、in、recursion等性能消耗語句
5使用內(nèi)存緩存,或者在前端讀取時增加緩存數(shù)據(jù)庫。重復讀取時,直接從緩存中讀取。
以上是一種低成本的管理方法,基本上幾個服務(wù)器就可以做到,但是管理起來有點麻煩。
當然,如果整體數(shù)據(jù)量特別大,不在乎投資成本,可以使用cluster,也可以使用tidb
一般來說,數(shù)據(jù)庫保存的是一個公司的核心數(shù)據(jù),單機數(shù)據(jù)庫往往會出現(xiàn)停機、網(wǎng)絡(luò)延時等問題。這不僅是數(shù)據(jù)安全的隱患,更是值得關(guān)注的性能問題
!分布式數(shù)據(jù)庫方案在充分保證數(shù)據(jù)容災(zāi)和提高性能方面發(fā)揮著重要作用。一般來說,分布式數(shù)據(jù)庫方案有以下幾種:
主從復制的開放性非常簡單。在MySQL配置中心打開log bin進行復制,使用服務(wù)器ID配置主從
?、?、雙主互備:
1、兩臺機器互為主從,實現(xiàn)雙向同步數(shù)據(jù),在代碼或其他組件中實現(xiàn)負載均衡
!2. 一主一備:當當前主機停機時,備機可以快速上升并提供服務(wù)
!當一臺機器掛斷時,另一臺可以繼續(xù)使用,數(shù)據(jù)同步中斷
?、圩訋旌妥颖恚喊凑找欢ǖ牟鸱衷瓌t,將數(shù)據(jù)存儲在不同數(shù)據(jù)庫的不同表中
!橫向拆分:根據(jù)月份、哈希等方式,將數(shù)據(jù)分布到不同的數(shù)據(jù)庫(表)
!一般情況下,如果寫入數(shù)據(jù)太大,建議使用子數(shù)據(jù)庫和子表將寫入壓力分散到不同的數(shù)據(jù)庫。如果多讀少寫,讀寫分離就足夠了
!以上幾種方式,筆者近幾年在不同公司遇到,代碼層實現(xiàn)讀寫分離,雙寫負載均衡,如果需要朋友,可以一起交流!