快速插入mysql資料庫的方法

2021-06-02 06:09:50 字數 3149 閱讀 8848

mysql版本為5.1

開啟mysql的命令列工具,先 use 資料庫

然後輸入:

load data local infile 'f:/insertcardtotalinfo2.sql' into table  cardtotalinfo(code,companyid,faceprice,purchaseprice,purchasetime,networkid,sendtime,saletime,networkmoney,nwmoneytime,companymoney,cpmoneytime)  ;

不用新增「fields terminated by ',' lines terminated by '\r\n'」 在末尾,否則報錯

注意sql檔案需要用\t分割字段值,用\r分割每行

結果如下:

100萬行資料,插入需要4.69秒,太bt了,再一次測試花了36秒。

可惜分割槽尚未實現。

生成檔案的php**:

<?php

set_time_limit(1000);

$myfile="f:/insertcardtotalinfo3.sql";

tryecho"寫入成功";}}

catch(exception$err)

?>

內容為:

abc12573 10.56 2011-11-3012:43:0310622011-11-3012:43:122011-11-3012:43:1972011-11-3012:43:2962011-11-3012:43:37

abc13583 10.56 2011-11-3012:43:0336112011-11-3012:43:122011-11-3012:43:1972011-11-3012:43:2962011-11-3012:43:37

abc14465 10.56 2011-11-3012:43:0391772011-11-3012:43:122011-11-3012:43:1972011-11-3012:43:2962011-11-3012:43:37

abc15706 10.56 2011-11-3012:43:0319542011-11-3012:43:122011-11-3012:43:1972011-11-3012:43:2962011-11-3012:43:37

abc1497 10.56 2011-11-3012:43:0361172011-11-3012:43:122011-11-3012:43:1972011-11-3012:43:2962011-11-3012:43:37

abc10223 10.56 2011-11-3012:43:0323042011-11-3012:43:122011-11-3012:43:1972011-11-3012:43:2962011-11-3012:43:37

abc5550 10.56 2011-11-3012:43:0312932011-11-3012:43:122011-11-3012:43:1972011-11-3012:43:2962011-11-3012:43:37

資料庫欄位有:

drop table if exists `cardtotalinfo`;

create table `cardtotalinfo` (

`id` bigint(20) not null auto_increment,

`code` varchar(30) not null,

`companyid` int(11) not null,

`faceprice` float not null,

`purchaseprice` float not null,

`purchasetime` datetime not null,

`networkid` int(11) not null default '0',

`isfirst` bit(1) not null default b'0',

`sendtime` datetime default null,

`issaled` bit(1) not null default b'0',

`saletime` datetime default null,

`networkmoney` float not null default '0',

`nwmoneytime` datetime default null,

`isspended` bit(1) not null default b'0',

`companymoney` float not null default '0',

`cpmoneytime` datetime default null,

primary key (`id`,`companyid`,`networkid`)

) engine=innodb auto_increment=2 default charset=gb2312

分割槽語句如下:

/*!50100 partition by range (id)

(partition p1 values less than (1000000) engine = innodb,

partition p2 values less than (2000000) engine = innodb,

partition p3 values less than (3000000) engine = innodb,

partition p4 values less than (4000000) engine = innodb,

partition p5 values less than (5000000) engine = innodb,

partition p6 values less than (6000000) engine = innodb,

partition p7 values less than (7000000) engine = innodb,

partition p8 values less than (8000000) engine = innodb,

partition p9 values less than (9000000) engine = innodb,

partition p10 values less than (10000000) engine = innodb,

partition p11 values less than maxvalue engine = innodb) */;

關於mysql資料庫快速插入方法

寫技術類文章出於三個目的,第一,對自己寫過的東西做一次總結,溫故而知新,第二,希望好友中的大神門對小弟的方法加以改進和建議,第三,對於剛入門的程式設計師提供有限的建議和方法,人幫我,我幫人 關於mysql 的插入語句,大家最熟悉不過了,下面這兩句語句實現對mysql資料庫的插入 sprintf qu...

MySQL快速複製資料庫的方法

某些時候,例如為了搭建乙個測試環境,或者轉殖乙個 需要複製乙個已存在的mysql資料庫。使用以下方法,可以非常簡單地實現。假設已經存在的資料庫名字叫db1,想要複製乙份,命名為newdb。步驟如下 1.首先建立新的資料庫newdb mysql u root ppassword mysql creat...

MySQL快速複製資料庫的方法

某些時候,例如為了搭建乙個測試環境,或者轉殖乙個 需要複製乙個已存在的mysql資料庫。使用以下方法,可以非常簡單地實現。假設已經存在的資料庫名字叫db1,想要複製乙份,命名為newdb。步驟如下 1.首先建立新的資料庫newdb mysql u root ppassword mysql creat...