我执行了一个insert查询如下-
插入到表名中
选择query1 union query2
现在,如果我执行这个insert查询的select部分,它大约需要2-3 minutes.However,整个insert脚本占用8 minutes.As以上,据我所知,insert和相应的select查询的执行时间几乎是相同的。
那么,它们是否还有其他可能影响插入执行时间的因素?
发布于 2013-09-12 10:06:46
插入和相应的选择同时进行是不正确的,它不应该!select查询只是“读取”数据并传输它们;如果在应用程序(如phpMyadmin)中尝试查询,很可能会限制查询结果分页,因此select速度更快(因为它没有选择所有数据)。insert查询必须读取该数据、在表中插入、更新主键树、更新该表上的所有其他索引、使用该表更新每个视图、触发该表/列上的任何触发器ecc.因此,插入操作比插入操作多很多操作。因此,插入比select慢是正常的,它的速度取决于表和db结构。您可以使用一些特定于db的选项来优化插入,例如,您可以为mysql读取这里,如果您在DB2上,您可以创建一个临时文件,然后将它转到实际的文件中,等等……
https://stackoverflow.com/questions/18761229
复制相似问题