mysql索引优缺点以及创建的时机
来源:互联网 发布:c语言中用户标识符 编辑:程序博客网 时间:2024/06/05 17:30
建立索引的优点
1、可以通过建立唯一性索引,可以保证数据库表中数据的唯一性
2、可以加快数据的检索速度
3、可以加速表与表之间的连接
4、在使用分表和排序子句进行数据检索时,可以减少查询中分组和排序的时间
建立索引的缺点
1、索引的创建之后当然需要维护,因此索引的创建和维护要耗费时间。数据量越大,需要耗费的时间也就越多
2、索引需要占用额外的物理空间
3、当对表中的数据进行增加、删除、修改时,索引也需要动态的维护,这样一来速度会降低。
在查询时候,如果不加索引的话很简单的一个条件可能就需要全表扫描,数据库中建立合适的索引会大大提高效率,
什么情况下适合建索引
1、在经常需要搜索的列上建索引,这样会大大加快查找速度、
2、在经常使用在where子句中的列上建索引,加快条件的判断速度。
3、在经常需要连接的列上,可以加快连接的速度。
4、在经常需要排序的列上,因为索引已经是排过序的,这样一来可以利用索引的排序,加快排序查询时间。
5、在经常需要进行范围搜索的列上,同样,因为索引是排序的,指定范围则为连续的。
实践告诉我们,建立索引可以大大提高sql的性能:http://blog.csdn.net/wj1607162253/article/details/77483558
那是不是在数据库表字段中尽量多建索引呢?肯定是不是的。因为索引的建立和维护都是需要耗时的。
什么情况下不适合建立索引
1、在查询中很少用到的列。
2、那些只有很少数据值得列,如性别。建索引不仅没有什么优势,反而会影响更新速度。
3、那些定义为text等大的字段上。因为这些列的数据量要么相当大,要么取值很少。
附:sql性能优化时候需要注意的几个地方:
1、索引的排序
mysql查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
2、like语句操作
一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%a%” 不会使用索引而like “aaa%”可以使用索引。
3、不要在列上进行运算
select * from users where
YEAR(adddate)
4、不使用NOT IN和操作
NOT IN和操作都不会使用索引将进行全表扫描。NOT IN可以NOT EXISTS代替,id3则可使用id>3 or id
- mysql索引优缺点以及创建的时机
- 如何创建mysql索引以及索引的优缺点
- mysql数据库索引的优缺点以及创建方法
- 为mysql数据库建立索引;mysql索引总结----mysql 索引类型以及创建;mysql_建立索引的优缺点
- mysql 建议索引的原因以及优缺点
- MySQL索引的创建、删除及优缺点
- 数据库索引的一些优缺点以及索引的创建
- mysql索引的优缺点
- 数据库创建索引的优缺点
- 数据库创建索引的优缺点
- mysql聚集索引的优缺点
- mysql聚集索引的优缺点
- mysql聚集索引的优缺点
- mysql建立索引的优缺点
- mysql聚集索引的优缺点
- mysql的创建索引以及作用
- mysql索引(mysql 索引类型以及创建)
- 数据库索引的作用以及优缺点分析
- 基于SurfaceTexture的静默/无预览拍照方案
- 二叉树
- C++ std::vector指定位置插入
- Law of Commutation HDU
- 视频播放问题总结
- mysql索引优缺点以及创建的时机
- WOJ1187-Difference Minimizing
- kshon学习笔记之android相对布局
- 美团前端一面
- 邝斌的ACM模板(自适应 simpson 积分)
- 习题 6.12 有一行电文,已按下面规律译成密码:A-Z a-z即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。
- 湖南省2017省赛A题
- redis哨兵模式和主从复制
- 单链表的创建算法