寫了一個存盤程序 while do批量插入 就是一個三四個欄位的簡單插入 當插入幾十萬或者一百萬后 插入速度由原來的每秒幾千條下降到每秒幾百條 和事務無關,我測驗了 不知道和資料庫引數有什么關系
什么快取 什么io的 有大神研究過嗎
uj5u.com熱心網友回復:
批量導資料,先關閉索引,資料匯入完后再打開索引uj5u.com熱心網友回復:
小批量 一提交 這樣也不容易 和其他陳述句沖突uj5u.com熱心網友回復:
只有一個索引不至于一秒就插入幾百條資料那么慢吧?磁盤io很高,是不是要設定什么快取???
uj5u.com熱心網友回復:
資料庫表里有很多資料,那么索引樹肯定大,插資料時建索引消耗會越來越大
還有把sql多句拼成一句insert into ... values(),(),(),()...
不要一條條插,不然也會很慢
還有這個引數innodb_write_io_threads,你研究下
uj5u.com熱心網友回復:
show variables like '%sync_binlog%';開著的話把binlog關掉
uj5u.com熱心網友回復:
把存盤程序、建表陳述句貼出來看看。uj5u.com熱心網友回復:
把存盤程序、建表陳述句貼出來看看。
delimiter //
create procedure pro_insert_user()
begin
declare i int;
set i = 0;
while i<100000000 do
insert into sys_user (name,password,age,addr) values(concat('name_',i),password(i),i%110,concat('haila_',i));
set i = i+1;
end while;
end//
uj5u.com熱心網友回復:
你可以嘗試關閉日志 我好想記得單次程序的日志是先快取等完成后一次性保存到日志里的轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/28437.html
標籤:MySQL
上一篇:sql陳述句查詢下屬,及其下屬
下一篇:求大佬指導
