国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

mysql - 請問有innodb 引擎的表導入900w 的數據,用了快9個小時。有什么快速的方法嗎。正常是多少小時一般。

瀏覽:113日期:2022-06-18 15:01:42

問題描述

1.導入備份的數據到表中,表是innodb引擎,900w多條,導入時用了將近9小時2.下面是sh腳本代碼片段

`$MYSQL -u$dbUser -h$dbHost -p$dbPassword --default-character-set=utf8 $dbName < $mysqlImportFile`

3.問題: 1)時間是否正常導了這么長時間 2)有沒有更快速的方法 3)網上找的方法是先關閉事務

SET autocommit=0; 在腳本里應該如何寫呢?

問題解答

回答1:

1、索引可以先去掉,導完了再加上。2、把binlog關了。(減少寫磁盤)3、buffer_pool能調多大調多大。(減少寫磁盤)4、redo_log大小能多大多大(減少checkpoint)5、flush neighbors打開(增加順序寫磁盤)6、flush_at_trx_commit=0(減少寫磁盤)7、5.7可以直接像拷貝myisam表一樣拷貝ibd,不知道會不會快(沒過做比較)

回答2:

修改/etc/my.cnf配置添加autocommit=0; 注釋掉log-bin=mysql-bin(暫時不沒有主從配置需求)導入速度果然快了很多

注意導入后刪除掉autocommit=0;不然修改表的操作會不能執行,必須手動提交才可以。

回答3:

開啟事務批量導入,速度是很快的,我在Ubuntu(i5-3230M)上PHP平均每秒能插入超過5000條記錄到5.6,也就是導入900萬數據估計只需 9000000/5000/60 = 30分鐘.需要注意的是,MySQL InnoDB里,每個寫操作比如INSERT/UPDATE/DELETE等都會被當做一個事務自動提交.所以需要先SET AUTOCOMMIT=0禁掉自動提交后再START TRANSACTION開啟事務,最后手動COMMIT提交.

另外,減少寫日志操作也能加快寫入性能:禁用 log-bin 二進制日志.禁用 general_log 審計日志.innodb_flush_log_at_trx_commit 設為0,禁止每次提交事務都寫入日志.加大 innodb_buffer_pool_size.

主站蜘蛛池模板: 国产精品露脸脏话对白 | 一区二区成人国产精品 | 久久999视频 | 成人在线观看午夜 | 三级国产三级在线 | 台湾三级香港三级在线中文 | 免费国产成人高清在线观看不卡 | 国产精品亚洲精品一区二区三区 | 九九99香蕉在线视频网站 | 久久91精品国产91久久 | 国产在线精品成人一区二区三区 | 中文字幕日韩一区二区不卡 | 成人看片在线观看免费 | 亚洲精品高清久久 | 国产成人v视频在线观看 | 在线精品视频在线观看高清 | 亚洲精品欧美精品国产精品 | 99久久99久久精品免费看子 | 国产成人精品综合久久久 | 成人在线视频一区 | 免费永久观看美女视频网站网址 | 免费高清不卡毛片在线看 | 日本视频免费在线播放 | 高清大学生毛片一级 | 国产在线高清不卡免费播放 | 久久精品99毛片免费 | 99久久精品免费看国产免费 | 国产欧美另类久久精品91 | 日本一区二区三区不卡在线视频 | 日本一级~片免费永久 | 欧美成人在线视频 | 国产午夜亚洲精品国产 | 亚洲国产精品乱码在线观看97 | 亚洲 欧美 都市 自拍 在线 | 日韩欧美高清在线观看 | 特级片免费看 | 91av成年影院在线播放 | 亚洲精品国产精品国自产 | 俄罗斯三级毛片 | 高清一级淫片a级中文字幕 高清一区二区 | 日本不卡一区二区三区在线观看 |