如何使插入條資料用時最短?
可以根據專案實際情況採用如下幾種方式:
為何對同乙個表的插入多執行緒會比單執行緒快?同一時間對乙個表的寫操作不應該是獨佔的嗎?
在資料裡做插入操作的時候,整體時間的分配是這樣的:
從這裡可以看出來,真正耗時的不是操作,而是鏈結,解析的過程。
mysql插入資料在寫階段是獨佔的,但是插入一條資料仍然需要解析、計算、最後才進行寫處理,比如要給每一條記錄分配自增id,校驗主鍵唯一鍵屬性,或者其他一些邏輯處理,都是需要計算的,所以說多執行緒能夠提高效率。
分區分表後使用多執行緒插入。
使用preparedstatement介面允許資料庫預編譯sql語句,以後只需傳入引數,避免了資料庫每次都編譯sql語句,因此效能更好。
使用多值插入sql,sql語句的總長度減少,即減少了網路io,同時也降低了連線次數,資料庫一次sql解析,能夠插入多條資料。string sql = "insert into testdb.tuser (name, remark, createtime, updatetime) values (?, ?, ?, ?)";
for (int i = 0; i < m; i++)
pstmt.executebatch(); //執行批處理
pstmt.close();
mybroker.freeconnection(conn); //連線歸池
}
在乙個事務中提交大量insert語句可以提高效能。
1、將表的儲存引擎修改為myisam
2、將 sql 拼接成字串,每 1000 條左右提交事務。
10w條資料大概用時10s!/// /// 執行多條sql語句,實現資料庫事務。
/// mysql資料庫
/// 多條sql語句
public void executesqltran(listsqlstringlist)
//後來加上的
if (n > 0 && (n % 1000 == 0 || n == sqlstringlist.count - 1))
}原來一次性提交
}catch (system.data.sqlclient.sqlexception e)}}
}
操作MySQL資料庫插入多條資料
coding utf 8 time 2020 8 7 21 19 author bingl email 15736980819 163.com file 操作mysql資料庫插入多條資料.py software pycharm desc 靜,是一種修養。匯入模組 import pymysql 建立連...
SqlServer 插入多條資料
插入一條資料使用default關鍵字 insert into student studentno,loginpwd,studentname,gradeid,phone,address,borndate,email values 001 12345 張三 男 1,1234567890123 defau...
SQL表單條資料插入與多條資料插入
建立使用者表 create table users uid int identity 1,1 not null,uname varchar 20 not null,upassword varchar 20 not null,uage int,u bit default 0 not null,sele...