Multiple line insert is the better choice...it will be organized in
transaction blocks of many lines and it will speed up data insertion.

[bian...@mysql.com]# mysqldump -u root -p --all-databases -e > file.dump

-e: extended-inserts

Best regards.
--
Wagner Bianchi

2011/1/3 Daevid Vincent <dae...@daevid.com>

> Another option would be to mangle your insert statement with some other
> language like PHP, Python, Ruby, etc. so that the inserts are MULTI inserts
> instead. Something like:
>
> INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> VALUES (13071, 299519),
> VALUES (13071, 299520),
> VALUES (13071, 299521),
> ...
>
> That will radically speed up the inserts.
>
> Also delete your INDEX / KEYs and add them at the very end instead.
>
> -----Original Message-----
> From: mos [mailto:mo...@fastmail.fm]
> Sent: Sunday, January 02, 2011 8:42 PM
> To: mysql@lists.mysql.com
> Subject: Re: This just seems to slow
>
> Jerry,
>       Use "Load Data Infile" when loading a lot of data. Whoever is giving
> you the data should be able to dump it to a CSV file. Your imports will be
> much faster.
>
> Mike
>
> At 07:51 PM 1/2/2011, you wrote:
> >I'm trying to load data into a simple table, and it is taking many hours
> (and
> >still not done). I know hardware, etc., can have a big effect, but NOTHING
> >should have this big an effect.
> >
> >=====
> >us-gii >show create table t_dmu_history\G
> >*************************** 1. row ***************************
> >        Table: t_dmu_history
> >Create Table: CREATE TABLE `t_dmu_history` (
> >   `t_dmu_history_id` int(11) NOT NULL AUTO_INCREMENT,
> >   `DM_History_DM_ID` int(11) DEFAULT NULL,
> >   `DM_History_Customer_ID` int(11) DEFAULT NULL,
> >   PRIMARY KEY (`t_dmu_history_id`),
> >   KEY `DM_History_DM_ID` (`DM_History_DM_ID`),
> >   KEY `DM_History_Customer_ID` (`DM_History_Customer_ID`)
> >) ENGINE=InnoDB AUTO_INCREMENT=1446317 DEFAULT CHARSET=utf8
> >=====
> >
> >Here's a snip of what the input file looks like:
> >=====
> >SET autocommit=1;
> >
> >#
> ># Dumping data for table 'T_DMU_History'
> >#
> >
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299519);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299520);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299521);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299522);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299524);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299526);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299527);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299528);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299529);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299531);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299532);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299533);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299534);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13071, 299535);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13073, 298880);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13073, 298881);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13073, 298882);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13073, 298883);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13073, 298884);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13073, 298885);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13073, 298886);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13073, 298887);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13073, 298889);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13073, 298890);
> >INSERT INTO `T_DMU_History` (`DM_History_DM_ID`, `DM_History_Customer_ID`)
> >VALUES (13073, 298891);
> >=====
> >
> >There are about 870000 records.
> >
> >I realize that using one INSERT per row is going to hurt, but I don't
> control
> >the format of the incoming data.
> >
> >Besides, I'd have thought this would be pretty quick regardless of how
> clumsy
> >the method was.
> >
> >Is that "autocommit" a problem? This is a bulk load into an empty table,
> so
> >I'm not worried about ACID.
> >
> >Any suggestions?
> >
> >
> >
> >
> >
> >Regards,
> >
> >Jerry Schwartz
> >Global Information Incorporated
> >195 Farmington Ave.
> >Farmington, CT 06032
> >
> >860.674.8796 / FAX: 860.674.8341
> >E-mail: je...@gii.co.jp
> >Web site: www.the-infoshop.com
> >
> >
> >
> >
> >
> >--
> >MySQL General Mailing List
> >For list archives: http://lists.mysql.com/mysql
> >To unsubscribe:    http://lists.mysql.com/mysql?unsub=mo...@fastmail.fm
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/mysql?unsub=dae...@daevid.com
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
> http://lists.mysql.com/mysql?unsub=wagnerbianch...@gmail.com
>
>

Reply via email to