国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

MySQL下海量數(shù)據(jù)的遷移步驟分享

2024-07-24 12:47:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

公司數(shù)據(jù)中心計(jì)劃將海量數(shù)據(jù)做一次遷移,同時(shí)增加某時(shí)間字段(原來(lái)是datatime類型,現(xiàn)在增加一個(gè)date類型),單表數(shù)據(jù)量達(dá)到6億多條記錄,數(shù)據(jù)是基于時(shí)間(月)做的partition由于比較忙,一直沒(méi)有總結(jié),所以很細(xì)節(jié)的地方都記不清楚了,此處只是簡(jiǎn)單總結(jié)下當(dāng)時(shí)的情形,備忘

亂打亂撞

    最初接到任務(wù),沒(méi)有明確的入手點(diǎn),直接就是select * from db limit 10000,動(dòng)態(tài)修改翻頁(yè)數(shù)量,通過(guò)控制臺(tái)看耗時(shí)情況,慢

復(fù)制代碼 代碼如下:

SELECT IR_SID,IR_HKEY,IR_GROUPNAME,IR_SITENAME,IR_CHANNEL,IR_MID,IR_URLNAME,IR_STATUS_CONTENT,IR_CREATED_AT,date_format(IR_CREATED_AT,'%Y.%m.%d'),IR_LASTTIME,IR_VIA,IR_THUMBNAIL_PIC,IR_RTTCOUNT,IR_COMMTCOUNT,IR_UID,IR_SCREEN_NAME,IR_RETWEETED_UID,IR_RETWEETED_SCREEN_NAME,IR_RETWEETED_MID,IR_RETWEETED_URL,IR_STATUS_BODY FROM TB_SINA_STATUS WHERE IR_SID>40000 AND IR_SID<50001 INTO OUTFILE '/home/mysql/data/data_outfile.txt'; LOAD DATA INFILE '/home/mysql/data/data_outfile.txt' INTO TABLE NEW_TB_SINA_STATUS;

是否可以基于partition讀數(shù)據(jù)呢

    既然數(shù)據(jù)庫(kù)是按partition做分區(qū),是否可以按partition讀數(shù)據(jù)呢,如果可以改用怎樣的語(yǔ)法讀呢?時(shí)間上只要按月讀數(shù)據(jù),mysql會(huì)自動(dòng)的基于partition讀,具體可以用命令:explain partition即可看到具有基于哪個(gè)partition
    讀大數(shù)據(jù)會(huì)十分耗時(shí),對(duì)于數(shù)據(jù)進(jìn)行到什么狀態(tài),我們可能十分想了解,可以用命令:show status查看,我印象中主要是sending data,writting to net之類的。
    innodb引擎的性能較myIsam引擎到底如何?
    導(dǎo)庫(kù)實(shí)驗(yàn)中導(dǎo)出并導(dǎo)入一個(gè)月的數(shù)據(jù)(8G的文本量,2500w條記錄),在myisam引擎下需要不到4h(測(cè)試環(huán)境為pc機(jī)),但是在innodb引擎下,卻需要32小時(shí),改善索引之類的,也需要28h,性能有8倍之差。

    在網(wǎng)上找到了高人關(guān)于innodb與myisam區(qū)別,說(shuō)需要修改innodb_buffer_pool_size、innodb_flush_log_at_trx_commit

可保證沒(méi)有太大差別,嘗試了沒(méi)有明顯改善,在本機(jī)倒是可以,為什么呢???這個(gè)折騰了我好長(zhǎng)時(shí)間

innodb_flush_log_at_trx_commit

    是否為Innodb比MyISAM慢1000倍而頭大?看來(lái)也許你忘了修改這個(gè)參數(shù)了。默認(rèn)值是 1,這意味著每次提交的更新事務(wù)(或者每個(gè)事務(wù)之外的語(yǔ)句)都會(huì)刷新到磁盤(pán)中,而這相當(dāng)耗費(fèi)資源,尤其是沒(méi)有電池備用緩存時(shí)。很多應(yīng)用程序,尤其是從 MyISAM轉(zhuǎn)變過(guò)來(lái)的那些,把它的值設(shè)置為 2 就可以了,也就是不把日志刷新到磁盤(pán)上,而只刷新到操作系統(tǒng)的緩存上。日志仍然會(huì)每秒刷新到磁盤(pán)中去,因此通常不會(huì)丟失每秒1-2次更新的消耗。如果設(shè)置 為 0 就快很多了,不過(guò)也相對(duì)不安全了 — MySQL服務(wù)器崩潰時(shí)就會(huì)丟失一些事務(wù)。設(shè)置為 2 只會(huì)丟失刷新到操作系統(tǒng)緩存的那部分事務(wù)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 通渭县| 稷山县| 英德市| 嵊泗县| 乌拉特前旗| 安庆市| 闻喜县| 江城| 碌曲县| 堆龙德庆县| 青浦区| 克什克腾旗| 临沂市| 奈曼旗| 三明市| 阳信县| 修水县| 定西市| 襄城县| 承德市| 丁青县| 岢岚县| 平邑县| 龙岩市| 余干县| 林州市| 封开县| 宁乡县| 平远县| 吉林市| 商都县| 天峻县| 寻乌县| 汽车| 泗阳县| 叶城县| 龙游县| 濉溪县| 明水县| 静安区| 邢台县|