php大數(shù)據(jù)高并發(fā)處理 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ù)器)。現(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)行拆分,以便盡可能地查詢(xú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查詢(xún),避免聯(lián)合表查詢(xún),盡量不要使用count(*)、in、recursion等性能消耗語(yǔ)句
5使用內(nèi)存緩存,或者在前端讀取時(shí)增加緩存數(shù)據(jù)庫(kù)。重復(fù)讀取時(shí),直接從緩存中讀取。
以上是一種低成本的管理方法,基本上幾個(gè)服務(wù)器就可以做到,但是管理起來(lái)有點(diǎn)麻煩。
當(dāng)然,如果總體數(shù)據(jù)量特別大,而且我們不關(guān)心投資成本,那就使用cluster或tidb
所謂的并發(fā)可以從概念上看它是不并行的。從用戶(hù)的角度來(lái)看,有一種同時(shí)執(zhí)行的假象,但它在數(shù)據(jù)庫(kù)中確實(shí)是串行的,或者在某個(gè)粒度上是串行的。
以更新表中的一行數(shù)據(jù)為例,更新時(shí)會(huì)鎖定更改后的數(shù)據(jù)行,避免其他進(jìn)程訪問(wèn)該行,從而避免數(shù)據(jù)沖突。
此外,還有其他類(lèi)型的鎖,以適應(yīng)不同的場(chǎng)景。因此,在我們所謂的并發(fā)場(chǎng)景中,不存在數(shù)據(jù)問(wèn)題。
數(shù)據(jù)庫(kù)高并發(fā)請(qǐng)求,如何保證數(shù)據(jù)完整性?
為您提供幾個(gè)想法:
1。靜態(tài)網(wǎng)站頁(yè)面。靜態(tài)頁(yè)面是。HTML(。HTM等),不需要由web服務(wù)器解析。它只需要生成一次,然后每次直接下載到客戶(hù)端,效率更高。
2. 網(wǎng)站的web服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、圖片服務(wù)器和文件服務(wù)器是分開(kāi)的。通過(guò)服務(wù)器的專(zhuān)業(yè)化分工,以提高網(wǎng)站的訪問(wèn)速度。因?yàn)橄螺d圖片和文件時(shí),會(huì)給IIS、Apache等服務(wù)器帶來(lái)很大壓力。
3. 設(shè)置一個(gè)特殊的數(shù)據(jù)緩存服務(wù)器。將大量的數(shù)據(jù)放入緩存數(shù)據(jù)區(qū),在訪問(wèn)量較小時(shí)保存數(shù)據(jù),降低連接數(shù)據(jù)庫(kù)的直接操作成本。
4. 數(shù)據(jù)庫(kù)集群,數(shù)據(jù)庫(kù)表哈希。面對(duì)大量的訪問(wèn)量,大型網(wǎng)站會(huì)出現(xiàn)數(shù)據(jù)庫(kù)瓶頸。此時(shí),一個(gè)數(shù)據(jù)庫(kù)很快就無(wú)法滿足應(yīng)用的需要,因此需要使用數(shù)據(jù)庫(kù)集群或數(shù)據(jù)庫(kù)表哈希來(lái)分散壓力。
5. 鏡像。映像是提高大型網(wǎng)站性能和數(shù)據(jù)安全性的一種方法。圖像技術(shù)可以解決不同的網(wǎng)絡(luò)接入提供商和接入?yún)^(qū)域所帶來(lái)的用戶(hù)接入速度的差異。例如,中國(guó)網(wǎng)和教育網(wǎng)的差異促使許多網(wǎng)站在教育網(wǎng)中建立形象網(wǎng)站,數(shù)據(jù)可以定期或?qū)崟r(shí)更新。
6. 負(fù)載平衡。負(fù)載均衡將是大型網(wǎng)站解決高負(fù)載訪問(wèn)和大量并發(fā)請(qǐng)求的高端解決方案。
7. 最新:CDN加速技術(shù)。什么是CDN?CDN的全稱(chēng)是content distribution network。其目的是在現(xiàn)有的互聯(lián)網(wǎng)上增加一層新的網(wǎng)絡(luò)架構(gòu),將網(wǎng)站的內(nèi)容發(fā)布到離用戶(hù)最近的網(wǎng)絡(luò)“邊緣”,讓用戶(hù)就近獲得所需內(nèi)容,提高用戶(hù)訪問(wèn)網(wǎng)站的響應(yīng)速度。CDN不同于image,因?yàn)樗萯mage更智能,或者可以用它來(lái)比喻:CDN=更智能的image cache流量分流。