数据库索引

数据库索引:索引的本质就是排序,将建立的索引列进行键值排序,建立索引可以提高检索的性能,但是会降低修改的性能,因为检索性能与修改性能是矛盾的。

查询数据避免使用:select *:这种方式虽然可以简化开发,但是会造成覆盖索引这样的优化手段失效,也会增加磁盘I/O,内存和CPU的开销等,所以尽量使用select t.id, t.name ...的查询sql,因为这种形式能更好的利用索引。

假设:某个表中,数据有N条,百万级以上

①通过id(唯一)检索,需要访问N/2条数据才能找到数据,不过id是经过排序的,那么就可以建立二叉树用二分法查找,只要比较log2 N次,大大提高了性能。(在一个有1w条数据的表中,查询name=“yk”的数据(假设有100个人叫yk),使用explain select * from table where name=“yk”,①如果这个字段没有索引,那么结果检测出来的rows(查询的行数)=1w。②如果这个字段建立了索引,那么结果检测出来的rows=100。检索的效果大大增加)

结论:建立索引之后,再次查询,会通过yk的键值来查找数据,索引通过键值的排序来定位数据的位置,因此直接定位到那100条数据,所以相比从整张表中扫描数据,速度快得多。

②什么情况创建索引?

1、经常要搜索的列上建立索引,可以加快搜索的速度。

2、在作为主键的列上。

3、在经常用作连接的列上,一般都是外键,可以加快连接速度。

4、在经常需要根据范围搜索的列上加上索引,因为索引已经排序,其指定的范围是连续的。

5、在经常需要排列的列上建立索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序的速度。

6、在使用在where后的列上加上索引,加快条件的判断速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值