相同的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服务器中可能没有缓存过相应数据,而B中有 参考技术A 说明你的SQL 在B服务器上执行的时候被 优化了 而在A 上没有被优化, 参考技术B 是数据库软件的问题,你把a服务器上的数据库版本换成和b服务器数据库版本一模一样的看看.
以上是关于相同的sql语句,在服务器A,服务器B里面的执行速度相差巨大,求原因!的主要内容,如果未能解决你的问题,请参考以下文章