• 浅谈索引


    引言


        作为一名web程序员,和数据库打交道是必不可少的,为了优化查询的效率,我们最常想到的方法应该就是添加索引了,为了能够更好的使用索引,我们应该对它多做一些了解。


    索引是什么


        数据库对象的索引其实和书的目录很类似,它的目的就是为了提高从表中检索字段的速度。
        实现原理是特定字段先执行一次排序,然后每次需要指定数据前,先对从索引中查询,因为索引是特殊的数据结构,所以查询速度非常快。

    索引类型
        常见的索引类型有三种,全文索引,唯一索引,普通索引.


    索引方法
        在mysql数据中,常用的索引方法有B-Tree索引,哈希索引
        哈希索引,是把使用哈希函数,映射到哈希表上,这种查找数据的方式空间复杂度是O(n),时间复杂度是O(1);
        但是哈希索引只能对某一特定数据进行查找,没有办法查询到某一数据段集合所需要的数据。(ps:innoDB与MyISAM不支持hash索引,所以一般直接选择B树索引即可)
        B-Tree索引,要想了解B-Tree索引,那么首先你就不得不了解B-Tree这种数据结构,它是一种多路平衡搜索树,可以对区间进行查找,在B-Tree中,所有的数据都保存在叶节点,进行区间查找的时候,首先找到区间最小值,然后找到最大值,在这之间所有的数据即为查找的数据

    什么情况下用什么索引


        经常查询的字段,或者说总是在where字句中出现
        order by或者group by的字段
        主键或者外键
        唯一完整性约束等

    选择合适的索引方法


        选择索引的时候,索引类型对应数据的特性,而索引方法则对应查找的方法,如果没有建立正确的索引,那么还不如不建立索引,其实大多数情况下,选择普通索引方法即可,但是存在某些特殊的情况,我们需要特定的索引
        比如说唯一索引,唯一索引或者说更多的是一种约束,当某一字段具有唯一性质时,选择唯一索引,如主键和外键等。
        如果某字段数据比较大,如保存的是某一篇博客的内容,并且改动较少,那么可以建立全文索引,全文索引比较消耗内存空间

    尾语


        索引是一种优化查询效率的方法,但是请不要滥用,滥用索引真的还不如不用索引。
       

  • 相关阅读:
    PHP加速器eAccelerator安装
    WCF
    WCF
    WCF
    前端学习书籍推荐
    问题集录01--java对list列表进行排序
    基础知识:字符编码
    基础知识:if条件、while循环、for循环 相关练习
    基础知识:语言、编程、计算机组成、cpu、存储器
    视图 索引 存储过程
  • 原文地址:https://www.cnblogs.com/crisenchou/p/6076393.html
Copyright © 2020-2023  润新知