喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 帮助

RSS 订阅当前论坛  

喜悦证交所已经关闭

上一主题 下一主题
     
标题: [问题] 为何MYSQL建立索引后速度变慢??(图文并茂版)  
 
dreamblaze
金牌会员
Rank: 6Rank: 6
村长他哥


UID 78956
精华 0
积分 1008
帖子 1022
金钱 872 喜悦币
威望 0
人脉 136
阅读权限 70
注册 2006-8-24
来自 福州
状态 离线
[广告]: q m
为何MYSQL建立索引后速度变慢??(图文并茂版)

IP库一共有33W+条数据,有两个字段 ip_start和ip_end,分别是某地IP范围的起始值和结束值(下图一)

使用类似下面的SQL

SELECT * FROM `wl_ip_data` where ip_start<68374213 and ip_end>68374213(不加limit1 )
来查询IP范围

刚才测试了一下四种索引情况,分别是

1.两个都不做索引   耗时:0.0010S
2.两个分别做索引   耗时:0.5S 左右
3.两个合一起做索引 耗时:1.45S 左右
4.只拿其中一个做索引 耗时:0.5S 左右
这是为啥?不加limit 1的话不做索引的速度竟然是做完索引的N倍!哪位大大能分析下原理?

[ 本帖最后由 dreamblaze 于 2008-2-28 05:11 PM 编辑 ]


 附件: 您所在的用户组无法下载或查看附件



天下流氓数吾乡
吾乡流氓数吾庄
吾庄流氓数吾弟
吾教吾弟耍流氓   
2008-2-28 05:06 PM#1
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
akstrom (akstrom)
金牌会员
Rank: 6Rank: 6
村口大榕树上的知了


UID 24856
精华 0
积分 1082
帖子 1088
金钱 949 喜悦币
威望 0
人脉 133
阅读权限 70
注册 2003-11-27
来自 广州
状态 离线
[推荐阅读] 放一些能玩玩的股,希望万恶的资本家不要在把它们放到厕所里了!
你加了索引后记得整理下数据库,然后再查询看看



电子商务系统

后台/admin
用户名密码一样admin

',“╭⌒╮⌒╮╮
  ╱◥██◣,.
︱田︱田田| '',,',.
╬╬╬╬╬╬╬╬╬╬╬╬
2008-2-28 05:08 PM#2
查看资料  访问主页  Blog  发短消息  顶部
 
dreamblaze
金牌会员
Rank: 6Rank: 6
村长他哥


UID 78956
精华 0
积分 1008
帖子 1022
金钱 872 喜悦币
威望 0
人脉 136
阅读权限 70
注册 2006-8-24
来自 福州
状态 离线
[推荐阅读] [外包]类似分类信息的WEB2.0网站开发


QUOTE:
你加了索引后记得整理下数据库,然后再查询看看
没有碎片。。。刚刚才导入的IP库




天下流氓数吾乡
吾乡流氓数吾庄
吾庄流氓数吾弟
吾教吾弟耍流氓   
2008-2-28 05:10 PM#3
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
akstrom (akstrom)
金牌会员
Rank: 6Rank: 6
村口大榕树上的知了


UID 24856
精华 0
积分 1082
帖子 1088
金钱 949 喜悦币
威望 0
人脉 133
阅读权限 70
注册 2003-11-27
来自 广州
状态 离线
[推荐阅读] 高薪急聘php程序员
不是碎片,是优化的,因为好像索引如果修改是要优化重新建立的



电子商务系统

后台/admin
用户名密码一样admin

',“╭⌒╮⌒╮╮
  ╱◥██◣,.
︱田︱田田| '',,',.
╬╬╬╬╬╬╬╬╬╬╬╬
2008-2-28 05:19 PM#4
查看资料  访问主页  Blog  发短消息  顶部
 
wildlily980
中级会员
Rank: 3Rank: 3
中级会员



UID 38831
精华 0
积分 376
帖子 395
金钱 376 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2004-10-24
状态 离线
[推荐阅读] 请教一个语法问题
首先,一次查询只会使用一个索引。
其次,当一个查询的命中率超过总数据的1/3时,不会使用索引。看你的情况 ip_start<68374213  ip_end>68374213 这个查询很有可能超过1/3,因为单独使用它们中的任何一个,都会是一个庞大的数据量。
最后,你的执行查询的顺序会影响你的数据库的缓存,会对速度有很大的影响。
2008-2-28 09:28 PM#5
查看资料  发短消息  顶部
 
dreamblaze
金牌会员
Rank: 6Rank: 6
村长他哥


UID 78956
精华 0
积分 1008
帖子 1022
金钱 872 喜悦币
威望 0
人脉 136
阅读权限 70
注册 2006-8-24
来自 福州
状态 离线
[推荐阅读] PHP如何采集这种网页?(高难度,挑战采集极限)


QUOTE:
不是碎片,是优化的,因为好像索引如果修改是要优化重新建立的
不知道咋建立。。我如果语句后面加上limit 1的话 两个字段分别做索引的速度就上来了,能达到0.0007s

QUOTE:
最后,你的执行查询的顺序会影响你的数据库的缓存,会对速度有很大的影响。
您指的查询顺序是?是指查询条件 ip_start<68374213 and ip_end>68374213 两个对调下吗?可是我试了下还都是0.5s。。。




天下流氓数吾乡
吾乡流氓数吾庄
吾庄流氓数吾弟
吾教吾弟耍流氓   
2008-2-29 09:11 AM#6
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
liuxingyuyuni (liuxingyuyuni)
中级会员
Rank: 3Rank: 3
初级会员



UID 68417
精华 0
积分 439
帖子 55
金钱 439 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-2-6
状态 离线
[推荐阅读] 南京公司招聘中级php程序员(3k-6k)
因为没有主索引?
这个比较有意思...

[ 本帖最后由 liuxingyuyuni 于 2008-2-29 07:34 PM 编辑 ]
2008-2-29 07:31 PM#7
查看资料  发短消息  QQ  顶部
 
dreamblaze
金牌会员
Rank: 6Rank: 6
村长他哥


UID 78956
精华 0
积分 1008
帖子 1022
金钱 872 喜悦币
威望 0
人脉 136
阅读权限 70
注册 2006-8-24
来自 福州
状态 离线
[推荐阅读] 菜鸟求教,SMARTY分页问题.


QUOTE:
原帖由 liuxingyuyuni 于 2008-2-29 07:31 PM 发表
因为没有主索引?
这个比较有意思...
id字段就是主索引,可是这里没用到




天下流氓数吾乡
吾乡流氓数吾庄
吾庄流氓数吾弟
吾教吾弟耍流氓   
2008-2-29 09:40 PM#8
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
漠北怪叟
金牌会员
Rank: 6Rank: 6



UID 70640
精华 0
积分 2374
帖子 393
金钱 2374 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2006-3-29
状态 离线
[推荐阅读] 输出目录下所有文件的问题
你查IP表.为何要把主索引建在ID上呢?



我的博客:http://hjc73.space.mywallop.cn,换窝了,http://my.haokan123.com/?104 自己开发的博客自己撑~
2008-3-1 09:49 AM#9
查看资料  Blog  发短消息  顶部
 
lyhiving (lyhiving)
注册会员
Rank: 2
初级会员



UID 29173
精华 0
积分 53
帖子 86
金钱 53 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2004-6-5
状态 离线
[推荐阅读] 成都九建科技有限公司招聘PHPer
将varchar缓存char效果会好点
2008-3-1 09:53 PM#10
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.025657 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP