Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插入查询vs选择查询性能mysql_Mysql_Mysql Workbench - Fatal编程技术网

插入查询vs选择查询性能mysql

插入查询vs选择查询性能mysql,mysql,mysql-workbench,Mysql,Mysql Workbench,我执行了如下插入查询- 插入到tablename中 选择 查询1联合查询2 现在,如果执行此insert查询的select部分,大约需要2-3分钟。但是,整个insert脚本需要8分钟以上。据我所知,insert和相应的select查询的执行时间应该几乎相同 那么,是否还有其他因素会影响插入的执行时间呢?插入和相应的选择占用相同的时间是不正确的,不应该! select查询只是“读取”数据并传输它们;如果您在应用程序(如phpMyadmin)中尝试查询,很可能会将查询结果限制为分页,因此选择速度更

我执行了如下插入查询-
插入到tablename中
选择 查询1联合查询2

现在,如果执行此insert查询的select部分,大约需要2-3分钟。但是,整个insert脚本需要8分钟以上。据我所知,insert和相应的select查询的执行时间应该几乎相同


那么,是否还有其他因素会影响插入的执行时间呢?

插入和相应的选择占用相同的时间是不正确的,不应该! select查询只是“读取”数据并传输它们;如果您在应用程序(如phpMyadmin)中尝试查询,很可能会将查询结果限制为分页,因此选择速度更快(因为它不会选择所有数据)。 insert查询必须读取该数据、在表中插入、更新主键树、更新该表上的每个其他索引、使用该表更新每个视图、触发该表/列上的任何触发器、ecc。。。因此,插入操作比插入操作多得多。 所以插入比选择慢是正常的,慢多少取决于表和数据库结构。
您可以使用一些特定于数据库的选项来优化插入,例如,您可以读取mysql,如果您在DB2上,您可以将一个临时文件转换为实际文件,然后将其转换为cpyf,等等……

同意。查询的复杂性如下:2个子查询3联接3表。查询的复杂性如下:2个子查询3连接3个表之前我们使用相同的插入查询,因此执行时间为3-4分钟。但是,现在执行此查询需要10分钟以上。执行此查询后,我们将获得以下线程状态:query End如何解决此问题?