mysql 查询效率的一个怪问题

waterfriend2006 2009-11-19 09:16:24
两张表分别有10多个字段,由外键关联
A:
id
name
visit_num
....
bid (外键关联到B:表的id)

B:
id
name
....

其中A表 有8万多条数据 B表只有4000多条数据。表A id,visit_num 表B id 都有建索引

sql1:
select a.id,b.id,a.name,b.name from A a inner join B b on a.aid = b.bid order by a.visit_num desc limit 100,5

sql2:
select a.id,b.id,a.name,b.name,a.xxx ...(其他20几个字段) from A a inner join B b on a.aid = b.bid order by a.visit_num desc limit 100,5

在我本地的mysql 5.0.51b-community-nt-log
上执行 sql1 需要10秒,而 sql2 只要1秒

而在服务器上的mysql 5.0.51a-log 刚好相反,执行sql1需要1秒 而sql2 需要10秒
两个数据库里的数据完全一样。

请问这个如何解释啊?谢谢!

...全文
89 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-11-19
  • 打赏
  • 举报
回复
应该和你的索引设置有关。

explain select a.id,b.id,a.nam ...

然后再 show index from A 看一下索引。
WWWWA 2009-11-19
  • 打赏
  • 举报
回复
你是连续执行两条SQL语句?你执行SQL2之前先重新启动系统,再运行看看速度

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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