我执行了一个插入查询,如下所示 -
插入表名
选择
query1 union query2
现在,如果我执行此插入查询的select部分,则需要大约2-3分钟。但是,整个插入脚本花费的时间超过8分钟。据我所知,插入和相应的选择查询应该几乎占用同一时间执行。
他们的任何其他因素是否会影响插入的执行时间?
答案 0 :(得分:1)
插入和相应的选择需要相同的时间是不正确的,它不应该! 选择查询只是“读取”数据并传输它们;如果你在一个应用程序(如phpMyadmin)中尝试查询,很可能会限制查询结果以对它们进行分页,因此select更快(因为它不会选择所有数据)。 insert查询必须读取该数据,插入表中,更新主键树,更新该表上的每个其他索引,使用该表更新每个视图,触发该表/列上的任何触发器,ecc ...以便插入操作比插入更多的动作。 因此,插入比选择慢,这是正常的,慢多少取决于你的表和数据库结构。 您可以使用一些特定于db的选项来优化插入,例如,您可以读取here的mysql,如果您使用的是DB2,则可以创建临时文件,然后将其复制到真实文件中,依此类推...... / p>