mysql向表中插入两万条数据,怎么插入效率更高,速度更快些?

是php操作的,一起向表中插入的

$sql = "INSERT INTO `TABLE`(name,password) VALUES
('张三','123'),
('李四','123'),
('王五','123'),
('赵六','123'),
('田七','123')........";

安照上面的方式插入数据库是效率更高,速度更快

望采纳 Thx

追问

但是插入时间太长的话数据库会断开链接

追答

那可以采用长链接
mysql_pconnect() 函数打开一个到 MySQL 服务器的持久连接

追问

这种方法插入比用循环插入的话效率有很大的效率提高吗?

追答

那肯定的了,不信你可以通过phpmyadmin 或者终端下导出数据库数据看下他们的插入方式都是,

建议不要采用循环方式,可以采用循环组合成sql语句后,插入。

$sql = "INSERT INTO `TABLE`(name,password) VALUES
('张三','123'),
('李四','123'),
('王五','123'),
('赵六','123'),
('田七','123')........";

这样的结构插入的。

追问

我用的mysql_pconnect() 但是还是提示我MySQL server has gone away,怎么办?我就是采用的你说的那种插入方式

追答

修改mysql server的my.cnf,通过修改wait_timeout,interactive_timeout,来设置延长超时时间
[mysqld]
wait_timeout=5
interactive_timeout = 5

追问

我怎么在我的电脑上没搜到这个文件,这个文件在什么位置?是不是叫my.ini

追答

恩 是的。Linux是 my.cnf 好像win的my.ini吧

追问

但是没找到你说的这两个参数,我的是my.ini

追答

你可以搜索下 MySQL server has gone away 有解决方案

追问

我通过show variables like '%tim%'; 看了一下,这两个参数的值都是28800啊,可是我肯定没超过这个值,就是大概一分钟左右就报错了

追答

嗯,你可以在搜索下解决方案

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-01
采用这种插入方式:

$sql = "INSERT INTO `TABLE`(name,password) VALUES
('张三','123'),
('李四','123'),
('王五','123'),
('赵六','123'),
('田七','123')........";
但一次插入不要超过1000条,mysql的IO是有限制的追问

要是一万多条可以采用这种插入方式吗,如果不可以的话就得循环插入了吗,执行一万多次insert操作