Ⅰ Mysql如何快速插入大量數據
通過導入文件的方式插入,文件可以用其他方式先生成,比如使用java,來生成data1.txt,然後使用下面的sql語句:
load
data
local
infile
'd:/data1.txt'
replace
into
table
hk_acinfo
lines
terminated
by
'\\r\\n'
使用這個方法,我插入過1千萬以上的數據,如果沒有網路影響的話,每秒1M+/s的速度寫入,很快的
Ⅱ 用phpmyadmin向mysql資料庫批量插入數據的sql語句怎麼寫
批量插入不要用循環,直接sql語句就可以了:
INSERT
INTO
table
(`field`,
`field2`)
VALUES
('val',
'val2'),
('v2',
'v3');
這樣就可以了,上面的sql批量了2條,以此類推,中間隔半形逗號即可。
我就暈了,你不會用程序處理啊,用一個array_map然後implode不久可以了嗎?
Ⅲ MySql 怎麼批量的導入.sql文件
你用mysqlmp把整個庫的SQL導出來, 然後讓他一次性全導入進去就行了
Ⅳ mysql 怎麼高效批量插入記錄
第一、看你的sql文本的結構分析才能知道最佳方案!
第二、表中的欄位, 你可以給他設置一個默認值或者設置可以為空, 這樣, 欄位不寫入值也可以
但如果,你的欄位沒有默認值, 又不允許為空, 那麼, 就必須寫入值, 否則插入數據會不成
Ⅳ 使用JDBC在MySQL資料庫中如何快速批量插入
可以使用jdbc預編譯+批量更新,這樣的執行效率最高。
具體是這樣使用的:
循環2000條數據例如數據被裝到了一個名叫dataList的List<Map<String,String>>中,那麼批量更新就是這樣執行的
Map map = null;
String data1= "";
String data2 = "";
String sql = insert into biao values(?,?);
PreparedStatement preStmt = conn.prepareStatement(sql);
for(i = 0;i<dataList.size();i++){
map = dataList.get(i);
data1=map.get("data1");
data2 = map.get("data2");
preStmt.setString(1,data1);
preStmt.setString(2, data2);
preStmt.addBatch();
}
preStmt.executeBatch();
preStmt.clearBatch();
Ⅵ c#中往mysql里批量插入上萬條數據,有比較高效的方法嗎
首先, 插入上萬條數據,對於資料庫來說並不是「很大」的工作量,一般配置的筆記本電腦都可以在1分鍾內完成。 所以最簡單、最靈活的辦法還是寫SQL語句。
如果不希望DB編譯器每次執行都編譯SQL的話,可以使用存儲過程,直接調用,性能上會好很多。也比較簡單。
(幾萬條數據怎麼地也得要時間去處理,所以不可能特別快的。)
如果由於各種原因,導致這個插入還是很慢, 而且你的MYSQL又是5.0以上版本的話,可以使用BulkCopy來進行批量操作。
BulkCopy的原理就是Client直接把一個數組(DataTable)傳給DB,然後傳入表名,所有的編譯、操作都由DB自己完成,效率很高。
引用MySql.Data.dll , 調用MysqlBulkCopy函數即可。
這個函數在處理海量數據插入的時候效率尤為明顯, 小量數據反而沒什麼優勢,而且由於傳入的DataTable格式必須和表的欄位一模一樣(空的列也要傳進去),導致C#要寫很多代碼來構造這個數組,所以要你自己權衡用還是不用。
我在自己的電腦上批量插入一億條數據,Insert寫法大概需要1小時,BulkCopy大概只需要5分鍾。
Ⅶ 請教大神們如何批量地往mysql資料庫導入大量的sql文件呢 sqlyog ...
windows系統,用命令行登入mysql後,使用通配符進行匹配:
source
*.sql
linux或mac,建議你寫腳本,或者使用管道
cat
a.sql
b.sql
|
mysql
-u
root
-proot
test
Ⅷ mysql批量插入數據怎麼寫sql語句呢
如果就一個name欄位並且ID是自增的話就這樣
INSERT INTO tablename VALUES('name1','name2','name3','name4')
否則就這樣
INSERT INTO tablename VALUES(('1','name1'),('3','name2'),('2','name3'),('8','name4'))
當然也可以這樣寫,上面的是簡化的
INSERT INTO tablename (name)VALUES ('name1','name2','name3','name4')
INSERT INTO tablename (id,name) VALUES (('1','name1'),('3','name2'),('2','name3'),('8','name4'))
Ⅸ 怎麼批量插入mysql資料庫(1000條)
常見的insert語句,向資料庫中,一條語句只能插入一條數據:
insert
into
persons
(id_p,
lastname
,
firstname,
city
)
values(204,'haha'
,
'deng'
,
'shenzhen');
(如上,僅插入了一條記錄)
怎樣一次insert插入多條記錄呢?
使用示例:
insert
into
persons
(id_p,
lastname
,
firstname,
city
)
values
(200,'haha'
,
'deng'
,
'shenzhen'),
(201,'haha2'
,
'deng'
,
'gd'),
(202,'haha3'
,
'deng'
,
'beijing');
這樣就批量插入數據了,
遵循這樣的語法,就可以批量插入數據了。
執行成功,截圖:
據說,在程序開發中,一次插入多條數據,比逐次一條一條的插入數據,效率高很多
所以在程序開發的時候,使用此批量插入,也是比較不錯的。
此語句在mysql
5,
postgresql
9.3執行通過。
Ⅹ 如何自動批量往mysql資料庫中插入數據
drop procere if exists s_card;
delimiter $$
CREATE PROCEDURE s_card()
BEGIN
DECLARE j INT(11);
loop1: WHILE j<=1000 DO
insert INTO `tablename`(xxxxxx) values (xxx);
SET j=j+1;
END WHILE loop1;
END$$
delimiter ;
把上面存儲過程運行一下,輸入 call s_card()可以循環插入1000條數據
如果要指定輸入條數可以把數字從外界傳入