小白求解mySql的一个奇怪问题。

CodeOrange 2016-07-13 02:03:45
线上库使用count()统计查询数的时候速度狂降是什么原因,而如果只是查询显示数据,速度依然正常。而本地库使用count统计时速度正常。
sql语句一样,数据一样。
我想的是,是不是库的设置问题。
因为sql在本地开发库执行是正常的。
总体数据量也很小。

两个库查询的分析的情况也变了= =小白表示不懂。。。


两个库都开启了缓存
本地的select的type从praimary变成了simple而且还有其他的改变。。。mySql数据库
本地的似乎直接生成了派生表然后进行的查询,线上的还是一点点子查询。不知道这么说对不对=。=毕竟我也不懂。
不明白是什么原因造成的变化。。。。。。

问题的中心就是什么情况或者设置导致的本地库与线上库使用count时的查询效率相差那么大= =
再附上写的渣渣SQL给大家批判下= = SELECT COUNT(1)

FROM ds_user_order
LEFT JOIN ds_product ON ds_user_order.order_product_id
=ds_product.product_id
LEFT JOIN rb_user t3 ON
ds_user_order.order_user_id=t3.`id`
INNER JOIN (SELECT
id,user_account,invitation_my_code FROM rb_user) t4 ON
t3.invitation_code=t4.invitation_my_code
WHERE 1=1 AND
t3.invitation_code <> "" AND ds_product.`product_type`<>3 AND
ds_user_order.order_status IN(2,3)
主题是为嘛count导致本地和线上的查询效率不同啊~~~~!

...全文
127 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
CodeOrange 2016-07-13
  • 打赏
  • 举报
回复
再顶。。。求大神。。。好纠结的问题。。。如果慢,大家一起慢嘛。为嘛一个快一个慢,而且使用count就慢

引用 11 楼 yupeigu 的回复:
还有分析表:

analyze table xx


= =小白不懂这分析出了什么,3张表都用语句分析,两个库对比后都是的相同的结果~
  • 打赏
  • 举报
回复
还有分析表: analyze table xx
  • 打赏
  • 举报
回复
引用 9 楼 qq_32866925 的回复:
[quote=引用 5 楼 yupeigu 的回复:] 建议对 上面的3个表做一下分析,然后再看一下执行计划。 2个执行计划的区别是 对于rb_user的 t4,一个是做了一个派生表,一个没有做,所以性能上产生了差异。
具体分析什么= =因为表是相同的。直接导过去的。什么设置是让查询的时候做或者不做派生表的呢?[/quote] OPTIMIZE TABLE 表名 具体为什么要派生表,这个是mysql决定的,根据cost来决定
CodeOrange 2016-07-13
  • 打赏
  • 举报
回复
引用 5 楼 yupeigu 的回复:
建议对 上面的3个表做一下分析,然后再看一下执行计划。 2个执行计划的区别是 对于rb_user的 t4,一个是做了一个派生表,一个没有做,所以性能上产生了差异。
具体分析什么= =因为表是相同的。直接导过去的。什么设置是让查询的时候做或者不做派生表的呢?
CodeOrange 2016-07-13
  • 打赏
  • 举报
回复
引用 6 楼 KanzakiOrange 的回复:
本地库和线上库不是同一个数据库?数据量一致吗?那边机器访问的网络正常吗?
不是同一个库。数据量基本一直。因为是本地库直接导过去的。访问正常。而且不使用count统计时,查询的数据速度正常。
CodeOrange 2016-07-13
  • 打赏
  • 举报
回复
引用 4 楼 wwhtkill 的回复:
你这个数据量 再怎么count也不应该慢 show OPEN TABLES where In_use > 0 看看是不是有表被锁了
查询了,没有被锁的表
Ginnnnnnnn 2016-07-13
  • 打赏
  • 举报
回复
本地库和线上库不是同一个数据库?数据量一致吗?那边机器访问的网络正常吗?
  • 打赏
  • 举报
回复
建议对 上面的3个表做一下分析,然后再看一下执行计划。 2个执行计划的区别是 对于rb_user的 t4,一个是做了一个派生表,一个没有做,所以性能上产生了差异。
wwhtkill 2016-07-13
  • 打赏
  • 举报
回复
你这个数据量 再怎么count也不应该慢 show OPEN TABLES where In_use > 0 看看是不是有表被锁了
CodeOrange 2016-07-13
  • 打赏
  • 举报
回复
我再顶啊顶= =
IT阿沈 2016-07-13
  • 打赏
  • 举报
回复
还真不清楚。。。
CodeOrange 2016-07-13
  • 打赏
  • 举报
回复
顶啊顶啊~~~~

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧