自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL分表處理的實(shí)現(xiàn)方法

數(shù)據(jù)庫(kù) MySQL
MySQL分表處理的方法我們經(jīng)常會(huì)遇到,下文對(duì)該功能的處理方法作了詳盡的闡述,供您參考,如果您感興趣的話,不妨一看。

MySQL分表處理用于處理海量的數(shù)據(jù)庫(kù),下面就為您詳細(xì)介紹MySQL分表處理的實(shí)現(xiàn)方法,希望對(duì)您能夠有所啟迪。

面對(duì)海量數(shù)據(jù)的表的時(shí)候,我們需要對(duì)它進(jìn)行分表處理,我是按月份分的表,即每月都要建立一張表

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

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

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

rename table my_table to table_2010_05; 這時(shí)候就重新命名了my_table這張表,但是原來(lái)的my_table這張表還是存在的,只不過(guò)所有的數(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ù)庫(kù)造成的壓力會(huì)很大,

在重新命名了my_table這張表后需要重新要?jiǎng)?chuàng)建my_table這張表,CREAT my_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ù)重新查找出來(lái)插入到my_table (暫時(shí)存儲(chǔ)的是六月份的數(shù)據(jù))

insert into my_table (field1,field2....) SELECT field1,field2....FROM my_table_2010_05 WHERE filed3 >= "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語(yǔ)句就不用改了,但是進(jìn)行查詢的時(shí)候就需要對(duì)時(shí)間進(jìn)行判斷,以確定具體查找那一張表,因?yàn)槲覀円呀?jīng)進(jìn)行了分表操作。

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


 

【編輯推薦】

MySQL復(fù)制表數(shù)據(jù)到新表的方法

MySQL多表刪除的實(shí)現(xiàn)

MySQL獨(dú)立表空間的優(yōu)缺點(diǎn)

mysql數(shù)據(jù)庫(kù)大小寫的問(wèn)題討論

MySQL MyISAM表結(jié)構(gòu)的恢復(fù)

 

 

責(zé)任編輯:段燃 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-10-15 16:03:03

Mysql分表處理

2010-10-15 10:58:13

Mysql清空表

2010-06-10 14:14:18

個(gè)MySQL表索引

2010-11-23 09:13:47

mysql修改表結(jié)構(gòu)

2010-10-19 16:20:32

SQL SERVER表

2023-02-24 15:24:14

MySQL數(shù)據(jù)庫(kù)管理分庫(kù)分表

2010-10-15 10:37:27

MySQL創(chuàng)建關(guān)聯(lián)表

2010-11-23 09:57:36

MYSQL表信息

2010-11-24 09:37:01

mysql快速建表

2018-05-14 16:14:56

數(shù)據(jù)庫(kù)MySQL分表與分區(qū)

2010-10-14 13:55:58

MySQL創(chuàng)建函數(shù)

2010-10-14 09:15:20

MySQL查詢

2010-10-13 17:13:17

MySQL重復(fù)記錄

2010-10-15 11:05:31

MYSQL查詢結(jié)果

2010-10-14 14:43:45

MySQL聯(lián)表查詢

2010-10-22 16:48:49

SQL刪除所有表數(shù)據(jù)

2009-05-20 13:48:55

限制MySQLthe table i

2010-11-25 14:52:35

MySQL隨機(jī)查詢

2010-10-11 11:58:12

2010-11-24 13:11:06

MySQL遍歷數(shù)據(jù)表
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)