免费注册 查看新帖 |

Chinaunix

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

请问MySQL要记录达到多少的时候才开始启用索引 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2006-05-11 12:45 |显示全部楼层
你的3个字段分别是什么类型?

看看 http://imysql.cn/?q=node/45,希望对你有帮助。

论坛徽章:
0
2 [报告]
发表于 2006-05-11 14:16 |显示全部楼层
原帖由 soichiro 于 2006-5-11 12:55 发表
字段都是int,我就是在一个已经有数万条记录的表中做了多字段索引,而且索引是正常工作的,然后我就把表结构复制成一个新表,往新表里插了几十条记录,然后做完全相同的多字段索引,但索引却没有启用。


在表记录很少的情况下,不使用索引会更快的,放心吧。

http://imysql.cn/?q=node/46 这里就提到了。

论坛徽章:
0
3 [报告]
发表于 2006-05-12 10:08 |显示全部楼层
原帖由 soichiro 于 2006-5-11 14:55 发表
我刚才测试了一下,发现记录数大于等于100的时候MySQL会自动启用索引,如果小于这个数则不使用索引,我由此推测这个临界值是由变量:key cache division limit来设定的,因为我的MySQL变量中只有这个值刚好为100。 ...


这部分资料我正好翻译过,详情请看
http://imysql.cn/?q=node/47
应该跟这个参数没关系。

每次查询之前,mysql都会做一下优化,在这个过程中会判断是否要使用索引。

论坛徽章:
0
4 [报告]
发表于 2006-05-15 09:01 |显示全部楼层
truncate表之后需要运行 optimize table xx才能重建索引。请多看手册。

论坛徽章:
0
5 [报告]
发表于 2006-11-28 12:59 |显示全部楼层
如果查询优化器认为检索的记录要超过全表记录的30%,那么就不使用索引
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP