如何使資料庫插入多條資料用時最短

2021-09-27 12:34:35 字數 1145 閱讀 2115

如何使插入條資料用時最短?

可以根據專案實際情況採用如下幾種方式:

為何對同乙個表的插入多執行緒會比單執行緒快?同一時間對乙個表的寫操作不應該是獨佔的嗎?

在資料裡做插入操作的時候,整體時間的分配是這樣的:

從這裡可以看出來,真正耗時的不是操作,而是鏈結,解析的過程。

mysql插入資料在寫階段是獨佔的,但是插入一條資料仍然需要解析、計算、最後才進行寫處理,比如要給每一條記錄分配自增id,校驗主鍵唯一鍵屬性,或者其他一些邏輯處理,都是需要計算的,所以說多執行緒能夠提高效率。

分區分表後使用多執行緒插入。

使用preparedstatement介面允許資料庫預編譯sql語句,以後只需傳入引數,避免了資料庫每次都編譯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); //連線歸池

}

使用多值插入sql,sql語句的總長度減少,即減少了網路io,同時也降低了連線次數,資料庫一次sql解析,能夠插入多條資料。

在乙個事務中提交大量insert語句可以提高效能。

1、將表的儲存引擎修改為myisam

2、將 sql 拼接成字串,每 1000 條左右提交事務。

/// /// 執行多條sql語句,實現資料庫事務。

/// mysql資料庫

/// 多條sql語句

public void executesqltran(listsqlstringlist)

//後來加上的

if (n > 0 && (n % 1000 == 0 || n == sqlstringlist.count - 1))

}原來一次性提交

}catch (system.data.sqlclient.sqlexception e)}}

}

10w條資料大概用時10s!

操作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...