ingress游戲 mysql表數(shù)據(jù)量太大,達(dá)到了1億多條數(shù)據(jù),除了分庫(kù)分表之外,還有沒(méi)有其他的解決方式?
mysql表數(shù)據(jù)量太大,達(dá)到了1億多條數(shù)據(jù),除了分庫(kù)分表之外,還有沒(méi)有其他的解決方式?在正常配置下,MySQL只能承載2000萬(wàn)數(shù)據(jù)(同時(shí)讀寫(xiě),表中有大文本字段,單服務(wù)器)?,F(xiàn)在已經(jīng)超過(guò)1億,而且還在
mysql表數(shù)據(jù)量太大,達(dá)到了1億多條數(shù)據(jù),除了分庫(kù)分表之外,還有沒(méi)有其他的解決方式?
在正常配置下,MySQL只能承載2000萬(wàn)數(shù)據(jù)(同時(shí)讀寫(xiě),表中有大文本字段,單服務(wù)器)?,F(xiàn)在已經(jīng)超過(guò)1億,而且還在增加,建議按以下方式處理:
1子表。它可以按時(shí)間或一定的規(guī)則進(jìn)行拆分,以便盡可能地查詢子表中的數(shù)據(jù)庫(kù)。這是最有效的方法。特別是寫(xiě),放入一個(gè)新表,并定期同步。如果記錄不斷更新,最好將寫(xiě)入的數(shù)據(jù)放在redis中,并定期同步表3的大文本字段,將它們分隔成一個(gè)新的獨(dú)立表。對(duì)于較大的文本字段,可以使用NoSQL數(shù)據(jù)庫(kù)
4優(yōu)化體系結(jié)構(gòu),或者優(yōu)化SQL查詢,避免聯(lián)合表查詢,盡量不要使用count(*)、in、recursion等性能消耗語(yǔ)句
5使用內(nèi)存緩存,或者在前端讀取時(shí)增加緩存數(shù)據(jù)庫(kù)。重復(fù)讀取時(shí),直接從緩存中讀取。
以上是一種低成本的管理方法,基本上幾個(gè)服務(wù)器就可以做到,但是管理起來(lái)有點(diǎn)麻煩。
當(dāng)然,如果整體數(shù)據(jù)量特別大,而且你不在乎投資成本,使用集群,使用tidb
分布式存儲(chǔ)是當(dāng)前互聯(lián)網(wǎng)流行技術(shù)“區(qū)塊鏈”的特點(diǎn)之一。它與傳統(tǒng)的互聯(lián)網(wǎng)技術(shù)有一些不同。一兩個(gè)字不清楚。第一種圖形是集中式,這是傳統(tǒng)互聯(lián)網(wǎng)數(shù)據(jù)的存儲(chǔ)方式?;诠俜椒?wù)器,一旦服務(wù)器出現(xiàn)故障,數(shù)據(jù)、信息和數(shù)據(jù)可能會(huì)丟失或泄露。
B圖表的第二種類(lèi)型是去中心化。將會(huì)有一些節(jié)點(diǎn)。一個(gè)節(jié)點(diǎn)記錄另一個(gè)節(jié)點(diǎn)生成或存儲(chǔ)的信息的價(jià)值(如何記錄或驗(yàn)證,如果我不是專(zhuān)業(yè)編輯,我不敢胡說(shuō)八道)。這就是所謂的分權(quán)和分布式會(huì)計(jì)。
第三種C圖是當(dāng)前流行的區(qū)塊鏈技術(shù)架構(gòu)圖。
三個(gè)圖之間的區(qū)別如下:1)服務(wù)器個(gè)人服務(wù)器。個(gè)人之間沒(méi)有直接的聯(lián)系。需要通過(guò)服務(wù)器進(jìn)行個(gè)人之間的通信和聯(lián)系。
2)分散分布式核算,每個(gè)人都是中心節(jié)點(diǎn),每個(gè)人都不是中心節(jié)點(diǎn)。兩人互相核實(shí),不想交代。
3)區(qū)塊鏈技術(shù),當(dāng)分散核算和分布式核算串聯(lián)起來(lái)構(gòu)建一個(gè)基本的技術(shù)層時(shí),如圖C所示
說(shuō)白了,分布式存儲(chǔ)是一種技術(shù),它從一個(gè)或多個(gè)勇于信息存儲(chǔ)的服務(wù)器,轉(zhuǎn)變?yōu)樗腥硕际欠?wù)器,所有人都參與在信息存儲(chǔ)和驗(yàn)證方面。
我是一個(gè)間隔集。我希望我的回答能幫助你。