MySQL中怎么實(shí)現(xiàn)分表處理-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)MySQL中怎么實(shí)現(xiàn)分表處理,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)公司"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機(jī)版的企業(yè)網(wǎng)站。實(shí)現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動(dòng)網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)公司具備承接各種類型的網(wǎng)站設(shè)計(jì)、網(wǎng)站制作項(xiàng)目的能力。經(jīng)過十年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評(píng)。

MySQL分表處理怎么實(shí)現(xiàn)

比如table_2010_04,table_2010_05,table_2010_06......您可以根據(jù)自己的需要,可以根據(jù)時(shí)間和不同的字段以及類型來分表。我按月分表是因?yàn)槲抑恍枰樵兠刻斓臄?shù)據(jù),不需要查月份的數(shù)據(jù),不需要好幾張表同時(shí)(union)查詢,所以查詢速度還是很快的,但是如果需要很多張表的union查詢的話速度可能就要慢了,那時(shí)候就要重新考慮分表的方式了。

每個(gè)月的開始都要進(jìn)行一個(gè)操作建立一張以月為單位的新表來存儲(chǔ)過去一個(gè)月的數(shù)據(jù),當(dāng)然有一張表的表名是一直不變的,這張表是用來暫時(shí)存儲(chǔ)新的一個(gè)月的數(shù)據(jù)的。

我現(xiàn)在有一張表叫my_table,那這張表是一直存在的,比如現(xiàn)在是六月三號(hào),那六月份的數(shù)據(jù)就暫時(shí)存儲(chǔ)在這張表中,這時(shí)候首先需要my_table變名,

renametablemy_tabletotable_2010_05;這時(shí)候就重新命名了my_table這張表,但是原來的my_table這張表還是存在的,只不過所有的數(shù)據(jù)都已經(jīng)存儲(chǔ)在table_2010_05這張表上了,這就是用rename進(jìn)行批處理的好處,大量的數(shù)據(jù)不需要在進(jìn)行轉(zhuǎn)移的時(shí)候不需要進(jìn)行導(dǎo)出和導(dǎo)入的操作,那樣效率會(huì)很低,而且對(duì)數(shù)據(jù)庫造成的壓力會(huì)很大,

MySQL分表處理怎么實(shí)現(xiàn)

在重新命名了my_table這張表后需要重新要?jiǎng)?chuàng)建my_table這張表,CREATmy_table(.......)

table_2010_05原則上存儲(chǔ)的都是五月份的數(shù)據(jù),但是因?yàn)槭侨?hào)才進(jìn)行這個(gè)操作,所以肯定是六月一號(hào)到三號(hào)的數(shù)據(jù)還是存儲(chǔ)到了table_2010_05這張表上,那就需要從這張表中把一號(hào)到三號(hào)的數(shù)據(jù)重新查找出來插入到my_table(暫時(shí)存儲(chǔ)的是六月份的數(shù)據(jù))

insertintomy_table(field1,field2....)SELECTfield1,field2....FROMmy_table_2010_05WHEREfiled3>="2010-06-01";這樣就把一號(hào)到三號(hào)的數(shù)據(jù)存入到了暫時(shí)存儲(chǔ)六月份數(shù)據(jù)的my_table到七月初的時(shí)候還要對(duì)該表進(jìn)行重復(fù)的操作進(jìn)行分表處理,my_table這張表保持不變的好處是每次插入的sql語句就不用改了,但是進(jìn)行查詢的時(shí)候就需要對(duì)時(shí)間進(jìn)行判斷,以確定具體查找那一張表,因?yàn)槲覀円呀?jīng)進(jìn)行了分表操作。

這樣每個(gè)月初都重復(fù)這樣一個(gè)操作,分表就順利實(shí)現(xiàn),在進(jìn)行插入之間還要進(jìn)行這樣一個(gè)操作,ALTERTABLEmy_tableMAX_ROWS=1000000000AVG_ROW_LENGTH=15000;這樣操作的好處是保證表存儲(chǔ)好大量數(shù)據(jù)(超過2G)的數(shù)據(jù),目前我的一個(gè)月的表中存儲(chǔ)了11G多的數(shù)據(jù),所以進(jìn)行分表錯(cuò)做非常有必要,大家可以根據(jù)自己的實(shí)際情況來進(jìn)行分表操作(如果是數(shù)據(jù)量很小的話就不需要進(jìn)行這個(gè)操作了)。

以上就是MySQL中怎么實(shí)現(xiàn)分表處理,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章標(biāo)題:MySQL中怎么實(shí)現(xiàn)分表處理-創(chuàng)新互聯(lián)
文章地址:http://bm7419.com/article24/ihgce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)公司網(wǎng)站內(nèi)鏈、網(wǎng)站制作移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名