相同的sql语句,在服务器A,服务器B里面的执行速度相差巨大,求原因!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了相同的sql语句,在服务器A,服务器B里面的执行速度相差巨大,求原因!相关的知识,希望对你有一定的参考价值。

SELECT * FROM `partstore` WHERE id in (select distinct(partstore_id) from sells where (all_part=1 or part_id=922 or parttype_id in (select parttype from part where id= 922)) and (all_car=1 or car_id=2448 or brand_id in (select brand_id from car where id=2448) or producer_id in (select producer_id from car where id =2448)) and (allcartype=1 or cartype_id in (select type from car where id=2448))) and province_id=9 and city_id=3 LIMIT 0,28

这个是sql语句
服务器A的配置要好于 服务器B很多
但是
服务器A上的执行时间是:6.4371秒
服务器B上的执行时间是:0.020901s
数据库都是一个结构也一样,版本好不一样
哪里的问题呢?

影响效率的因素有很多,比如说数据量,A如果有100w而B只有10条,那么显然B的效率要高
版本因素也有,版本不同内部运作机制肯定也会有差别
再有就是缓存,A服务器中可能没有缓存过相应数据,而B中有
参考技术A 说明你的SQL 在B服务器上执行的时候被 优化了 而在A 上没有被优化, 参考技术B 是数据库软件的问题,你把a服务器上的数据库版本换成和b服务器数据库版本一模一样的看看.

以上是关于相同的sql语句,在服务器A,服务器B里面的执行速度相差巨大,求原因!的主要内容,如果未能解决你的问题,请参考以下文章

sql多表连接查询问题

sql语句 根据条件update

用select语句把两个表合一块

同一个sql语句在不同的机器上执行时间相差很大,为啥

SQL语句把同一个表中的a字段中的数据复制到另一个字段b中

sql-编程语句