免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2488 | 回复: 5
打印 上一主题 下一主题

MYSQL5调用索引问题,救命啊~~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-28 15:14 |只看该作者 |倒序浏览
mysql 5.0.45 32位,A表500W条记录,B表1000W条记录
为啥两条一样的语句,就where里面的值不一样,调用的索引不一样啊。。。。。。
REF的0S就执行出来了,INDEX的需要18分钟。。。。。。
达人出来解释下啊
explain select count(*) from jiveMessageProp a,jiveMessage b where b.messageID=a.messageID and b.threadID='XEyklw7b';
+----+-------------+-------+------+---------------------------------------------------------------------+--------------------------+---------+--------------------+--------+-------------+
| id | select_type | table | type | possible_keys                                                       | key                      | key_len | ref                | rows   | Extra       |
+----+-------------+-------+------+---------------------------------------------------------------------+--------------------------+---------+--------------------+--------+-------------+
|  1 | SIMPLE      | b     | ref  | PRIMARY,jiveMessage_threadID_idx,jiveMessage_threadID_sg,idx_tid_cd | jiveMessage_threadID_idx | 20      | const              |      1 | Using where |
|  1 | SIMPLE      | a     | ref  | PRIMARY                                                             | PRIMARY                  | 20      | forum2.b.messageID | 104036 | Using index |
+----+-------------+-------+------+---------------------------------------------------------------------+--------------------------+---------+--------------------+--------+-------------+
2 rows in set (0.00 sec)

mysql> explain select count(*) from jiveMessageProp a,jiveMessage b where b.messageID=a.messageID and b.threadID='XEyklw7b1';
+----+-------------+-------+--------+---------------------------------------------------------------------+---------+---------+--------------------+----------+-------------+
| id | select_type | table | type   | possible_keys                                                       | key     | key_len | ref                | rows     | Extra       |
+----+-------------+-------+--------+---------------------------------------------------------------------+---------+---------+--------------------+----------+-------------+
|  1 | SIMPLE      | a     | index  | PRIMARY                                                             | PRIMARY | 222     | NULL               | 10403609 | Using index |
|  1 | SIMPLE      | b     | eq_ref | PRIMARY,jiveMessage_threadID_idx,jiveMessage_threadID_sg,idx_tid_cd | PRIMARY | 20      | forum2.a.messageID |        1 | Using where

论坛徽章:
0
2 [报告]
发表于 2008-10-28 15:36 |只看该作者
具体情况不知道,不过看你的这些数据还真有点累,干嘛不排排好啊。
还有啊,你为什么不用left join呢?

论坛徽章:
0
3 [报告]
发表于 2008-10-28 18:06 |只看该作者

回复 #1 doctordue 的帖子

a
b
建表语句

b.threadID='XEyklw7b'
b.threadID='XEyklw7b1'
记录数


explan where b.threadID='XEyklw7b'
explan where b.threadID='XEyklw7b1'
结果
谢谢

[ 本帖最后由 dahai01 于 2008-10-28 18:19 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-10-28 21:59 |只看该作者
应该是两个条件获取的结果数相差太多.

论坛徽章:
0
5 [报告]
发表于 2008-10-30 14:34 |只看该作者
把ab表的索引
打出来:)

论坛徽章:
0
6 [报告]
发表于 2008-10-30 15:27 |只看该作者
估计是第2条语句的结果非常大,所以就忽略了索引
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP