浅谈索引

引言mysql


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


索引是什么web


    数据库对象的索引其实和书的目录很相似,它的目的就是为了提升从表中检索字段的速度。
    实现原理是特定字段先执行一次排序,而后每次须要指定数据前,先对从索引中查询,由于索引是特殊的数据结构,因此查询速度很是快。

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


索引方法
    在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的字段
    主键或者外键
    惟一完整性约束等

选择合适的索引方法数据结构


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

尾语函数


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

相关文章
相关标签/搜索