很多時候方法選對了對於我們做事將會是事半功倍。
大家平時都會使用insert語句,特別是有時候需要乙個大批量的資料來做測試,一條一條insert將會是非常慢的,那麼我們如何讓我們的inser更快呢。
先看個例子:
我們需要在如下這個表中插入測試資料,包含兩列,乙個是itemid,乙個是itemname。如果向這個表中插入103,680,000 條記錄,普通的插入方法可能需要20多天才能完成,但是用這裡介紹的新方法在5個小時內就能夠完成。
先看一般的資料插入方法,假設我們向上表中插入100000 條資料:
1新的插入方法會使用已經插入的資料來進行下一條記錄的操作,原理如下:create table #temptable([item id] [bigint], [item name] nvarchar(
30))
2declare @counter
int3
set @counter =1
4while (@counter
<
100000
) 5
begin
6insert into #temptable values (@counter,
'hammer
')
7set @counter
=@counter +1
8end
9select
*from #temptable
10drop table #temptable
那麼看看我的新insert**:
1用第一種方法可能需要幾十分鐘插入100000資料,但是用第二種只要4秒鐘。再改進下,2秒鐘就完成:create table #temptable([item id] [bigint], [item name] nvarchar(
30))
2insert into #temptable values (1,
'hammer
')
3while((select count(
*) from #temptable)
<
100000
) 4
begin
5insert into #temptable ([item id], [item name])
6(select [item id]
+(select count(
*) from #temptable),
'hammer
'from #temptable)
7end
8select
*from #temptable
9drop table #temptable
1create table #temptable([item id] [bigint], [item name] nvarchar(
30))
2insert into #temptable values (1,
'hammer
')
3declare @counter
int4
set @counter =1
5while(@counter
<=
17)
6begin
7insert into #temptable ([item id], [item name])
8(select [item id]
+(select count(
*) from #temptable),
'hammer
'from #temptable)
9set @counter
=@counter +1
10end
11select
*from #temptable
12drop table #temptable
讓你的insert操作速度增加1000倍的方法
很多時候方法選對了對於我們做事將會是事半功倍。大家平時都會使用insert語句,特別是有時候需要乙個大批量的資料來做測試,一條一條insert將會是非常程式設計客棧慢的,那麼我們如何讓我們的inser更快呢。先看個例子 我們需要在如下這個表中插入測試資料,包含兩列,乙個是itemid,乙個是item...
INSERT語句的速度
mysql 5.5中文參考手冊 文件insert語句的速度 插入乙個記錄需要的時間由下列因素組成,其中的數字表示大約比例 這不考慮開啟表的初始化開銷,每個併發執行的查詢開啟。表的大小以logn b樹 的速度減慢索引的插入。加快插入的一些方法 如果同時從同乙個客戶端插入很多行,使用含多個value的i...
如果getHub的速度太慢
因為 githbu 是乙個國外的 使用雖然不需要翻牆,但是速度會很慢 解決方案 可以登入任意的 例如 站長之家 輸入 github 的 github.com 會所搜出所有的相關的網域名稱 13.229 188 59 開啟 hosts 檔案 c windows system32 drivers etc...