阿里云磁盤擴容 如何快速擴展MySQL數(shù)據(jù)量?
如何快速擴展MySQL數(shù)據(jù)量?擴展系統(tǒng)容量的主要方法有三種。最簡單的方法是升級機器(更大更快的硬盤,更多的內(nèi)存,任何成為瓶頸的東西)。第二種方法是打開一個新的分區(qū)范圍。盡管我們的片段ID是16位(最多
如何快速擴展MySQL數(shù)據(jù)量?
擴展系統(tǒng)容量的主要方法有三種。最簡單的方法是升級機器(更大更快的硬盤,更多的內(nèi)存,任何成為瓶頸的東西)。第二種方法是打開一個新的分區(qū)范圍。盡管我們的片段ID是16位(最多64K個片段),但我們在開始時只創(chuàng)建了4096個片段。新創(chuàng)建的對象只能存儲在前4K個分區(qū)中。有一天,我們決定添加一個新的MySQL服務器來存儲4096到8191個切片,并開始填充數(shù)據(jù)。最后一種方法是把一些零件移到新機器上。例如,要擴展mysql001a(存儲0到511個分區(qū))的容量,首先創(chuàng)建一個新的主從節(jié)點,并將其命名為最大數(shù)(如mysql009a和mysql009b),然后從mysql001a復制數(shù)據(jù)
以MySQL為列:
1:要支持高并發(fā)系統(tǒng),必須涉及事務,所以數(shù)據(jù)庫引擎必須選擇InnoDB。InnoDB支持事務,事務級別取決于業(yè)務。如果業(yè)務數(shù)據(jù)一致性要求非常高,事務將開啟序列化級別,這將完全隔離事務,但會導致對鎖資源的競爭加劇。MySQL的性能在一定程度上降低了。
2:數(shù)據(jù)庫分為主數(shù)據(jù)庫和從數(shù)據(jù)庫。主數(shù)據(jù)庫負責寫入數(shù)據(jù),集群數(shù)據(jù)庫負責讀取數(shù)據(jù)。注意主從數(shù)據(jù)庫的數(shù)據(jù)一致性。
3:冷熱數(shù)據(jù)分離,美團、饑餓部分設計采用冷熱數(shù)據(jù)分離。以訂單為例,出庫單的主要業(yè)務場景是查詢。數(shù)據(jù)查詢越向前,概率越低。這是冷數(shù)據(jù)。正在交易的訂單是熱點數(shù)據(jù),需要隨時查詢和更新。冷數(shù)據(jù)可以放入redis緩存。這將提高查詢效率。
4:數(shù)據(jù)表設計,充分利用索引查詢。businesssql避免返回無用的行和列,禁止使用select*query,在查詢時增加限制,并盡可能返回滿足要求的行。對于復雜的SQL,請考慮拆分SQL。拆分SQL有一個優(yōu)點。對于重復查詢SQL,將第二次查詢放入MySQL緩沖區(qū),避免重復磁盤操作,提高訪問性能。
5:子數(shù)據(jù)庫和子表。例如,業(yè)務數(shù)據(jù)按月份分類。在一定程度上,增加、刪除、修改和檢查的壓力將得到緩解。
希望對您有所幫助。謝謝您。
支撐日活百萬用戶的高并發(fā)系統(tǒng),應該如何設計其數(shù)據(jù)庫架構(gòu)? ?
在正常配置下,MySQL只能承載2000萬數(shù)據(jù)(同時讀寫,表中有大文本字段,單服務器)?,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ù)庫。重復讀取時,直接從緩存中讀取。
以上是一種低成本的管理方法,基本上幾個服務器就可以做到,但是管理起來有點麻煩。
當然,如果整體數(shù)據(jù)量特別大,而且你不在乎投資成本,那就用cluster,用tidb
你想知道的是MySQL本身還是用MySQL的數(shù)據(jù)庫系統(tǒng)來存儲大量數(shù)據(jù)的原理?
讓我們分別討論以下內(nèi)容:
1。MySQL本身
excel和access也可以存儲數(shù)千萬的數(shù)據(jù),但是保存和取出數(shù)據(jù)太難了。
因此,要解決存儲問題,就必須解決查詢問題。因為,從應用的角度來看,查詢操作占80%。
要解決查詢性能問題,必須合理化存儲,優(yōu)化存儲和查詢。
MySQL支持表存儲中的分區(qū)表(類似于Oracle的表空間),即一個數(shù)據(jù)表(邏輯上)對應多個物理表。
其次,存儲設備的選擇決定了存儲容量。例如,使用raid、San、NAS存儲,可以存儲數(shù)千萬的數(shù)據(jù),并支持高效的訪問。
2. 使用MySQL數(shù)據(jù)庫系統(tǒng)
一般管理信息系統(tǒng)使用MySQL作為數(shù)據(jù)庫,會考慮將來的擴展問題、數(shù)據(jù)備份問題、性能問題。
在早期階段,有幾種方案:分開數(shù)據(jù)庫和表,分開讀寫。
以后可以使用的是:存儲設備擴展。