如何向mysql里的Innodb插入千萬測(cè)試數(shù)據(jù)
代碼如下:
import java.lang.*;
import java.sql.*;
public class InsertTestMysql{
public static void main(String [] args){
java.util.Date now_start = new java.util.Date();
long start_time=now_start.getTime();
int st = 100000;
String str,info;
String db="org.gjt.mm.mysql.Driver";
String host="jdbc:mysql://192.168.1.35/test";
String user="root";
String passwd="root";
Connection con=null;
try{
Class.forName(db).newInstance();
}
如何向mysql數(shù)據(jù)庫(kù)中導(dǎo)入大批量數(shù)據(jù)?
你雙擊dbf是什么程序打開的?vfp嗎?
你可以使用set
printer
to
file
abc.sql
list
to
print
然后使用一個(gè)文本編輯器,如emeditor,編輯這個(gè)abc.sql,將內(nèi)容構(gòu)造為標(biāo)準(zhǔn)的sql語句:
insert
into
mytable
(a,b,c,d,e)
values
('dbf_field1','dbf_field2','dbf_field3','dbf_field4','dbf_field5')
然后在mysql
administrtor中,將這個(gè)abc.sql導(dǎo)入到數(shù)據(jù)庫(kù)中就可以了。
導(dǎo)入時(shí)把生成索引給關(guān)掉,應(yīng)該能快一點(diǎn).
不要一邊導(dǎo)入一邊建立索引.
8G數(shù)據(jù),應(yīng)該也不那么慢了.
把sql語句文件讀取出一部分看看,建表語句中,應(yīng)當(dāng)有建立索引的部分,刪掉它!
只做建表和插入數(shù)據(jù)兩件事.
還有,看看數(shù)據(jù)庫(kù)有沒有外鍵?
盡量在插入數(shù)據(jù)過程中去掉外鍵關(guān)聯(lián).
等數(shù)據(jù)插入完成之后再加索引和外鍵,應(yīng)該能提高很多讀寫性能.
截取一部分?jǐn)?shù)據(jù),例如100Mb.
插入一下試試,可以預(yù)先對(duì)整體時(shí)間有一個(gè)預(yù)期.
還有,真的要弄臺(tái)好點(diǎn)的電腦,或者去借一臺(tái),等把數(shù)據(jù)導(dǎo)入完成之后,把msyql的庫(kù)文件直接復(fù)制出來放自己機(jī)器上跑就好.
emm..
再追加點(diǎn)信息,要先搞明白,sql原文件里,到底都執(zhí)行了哪幾類操作?
可能需要你用c之類寫點(diǎn)小工具,或者別的什么語言,分塊讀取并處理文件.
8G..
嗯,還好.
現(xiàn)在內(nèi)存都?jí)虼?否則你都沒法直接用軟件打開了.
只有8G也可以直接用軟件打開看.
停掉索引真的可以大幅度加快插入數(shù)據(jù)的速度.
建議試一試!
MySQL怎樣快速插入大量測(cè)試數(shù)據(jù)
可以把ip設(shè)置成唯一的,也可以在插入之前select一下,判斷是否存在。
相關(guān)推薦:
賭博行政拘留最久多久(賭博拘留的期限為多久)
特快專遞立案(可以郵寄立案嗎)
職務(wù)軟件著作權(quán)歸誰(軟件著作權(quán)屬于公司還是個(gè)人)
刑事精神鑒定(刑事精神鑒定標(biāo)準(zhǔn))
關(guān)于餐飲賠償(餐飲賠付標(biāo)準(zhǔn))