日期:2014-05-16  浏览次数:20847 次

请问INSERT VALUES(),(),() 和分开写的INSERT VALUES();哪种效率更高?
INSERT INTO Table VALUES(), (), ();

对比

INSERT INTO Table VALUES();
INSERT INTO Table VALUES();
INSERT INTO Table VALUES();

到底那种写法效率更高呢?或者说哪种写法速度更快?

------解决方案--------------------
这种高:INSERT INTO Table VALUES(), (), ();
详细查询官网手册有说明。
------解决方案--------------------
感觉上应该 INSERT INTO Table VALUES(), (), ();

但仍要看是什么存储引擎。建议还是自己动手测试一下。
------解决方案--------------------
感觉是INSERT INTO Table VALUES(), (), ()快。。。没测试过
------解决方案--------------------
innodb 支持事务,INSERT INTO Table VALUES(), (), ();显然是一个原子操作,这样可能需要更多的资源以便回滚。
但这些都是从理论上推测,具体则需要进行测试才能知道。
------解决方案--------------------
前者快, 特别是几千条记录以上时
mysql_dump导出的文档默认是前者, 恢复的时候你就可以看到对比结果了
------解决方案--------------------
INSERT INTO Table VALUES(), (), ();
这个就是批量插入,应该是快得。
------解决方案--------------------
是一样的
------解决方案--------------------
传多值快,节省了网络I/O,同时server端可以充分利用批处理。