【数据库学习】索引的使用
来源:互联网 发布:音乐剪辑合并软件 知乎 编辑:程序博客网 时间:2024/05/18 01:42
1. 索引概念
索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。其本身是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针.
2.什么情况下不适用索引
索引的缺点
第一,创建索引和维护索引要耗费时间,这种时间随着数据 量的增加而增加。
第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
以下情况不适用索引
- 表记录太少
- 经常插入、删除、修改的表 对一些经常处理的业务表应在查询允许的情况下尽量减少索引(当修改性能远远大于检索性能时,不应该创建索 引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因 此,当修改性能远远大于检索性能时,不应该创建索引。)
- 数据重复且分布平均的表字段
- 不会出现在where条件中的字段不该建立索引
3. 什么情况下适用索引
- 较频繁地作为查询条件的字段
4. 索引无效的情况
- 如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引
- like查询是以%开头
- 如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引
- 如果mysql估计使用全表扫描要比使用索引快,则不使用索引
使用命令:
show status like 'handler_read%';
handler_read_key:这个值越高越好,越高表示使用索引查询到的次数
handler_read_rnd_next:这个值越高,说明查询低效
0 0
- 【数据库学习】索引的使用
- 学习笔记:SQLite数据库索引的使用
- 数据库索引的使用
- 数据库索引的使用
- 数据库索引的使用
- 数据库索引的使用
- 数据库索引的使用
- 数据库索引的使用
- 数据库索引的使用
- 数据库索引的使用
- 数据库索引的使用
- MySql数据库索引的学习
- MySQL数据库索引的学习
- 使用数据库索引的利弊
- 使用数据库索引的利弊
- 正确的使用数据库索引
- 数据库使用索引的利弊
- 数据库索引使用的关键
- 音频、语音信号处理的相关需求(广告)
- TortoiseSVN中Branching和Merging实践
- boost::tokenizer分词器
- 验证码图片绘制
- Windows CE操作系统内存管理总结
- 【数据库学习】索引的使用
- Android源码常见问题修改 ------ (一)
- Android开发教程笔记完全版
- java实现NLPIR(ICTCLAS)分词
- HTML第二节(网页结构基础 一)
- 循环-22. 输出闰年(15)
- CentOS 6.5 升级内核到 3.10.28
- extjs tabpanel 添加header不能重复加载tabpanel 的问题
- mysql infobright