• mysql索引小记


    Mysql索引分为以下几类:FULLTEXT, HASH,BTREE,RTREE.

    FULLTEXT:全文搜索索引

    主要是解决'ad%'这样的查询效率低的问题,只能是MyISAM和InnoDB引擎上使用

    HASH:哈希索引

    哈希索引与B索引的区别

    1:hash索引只能进行等值过虑,不能进行范围查询.这是因为hash索引是基于hash算法的

    2:hash索引无法被用来避免数据的排序操作.

    3:hash索引不能利用部分索引键进行查询.

    4:hash索引无法避免对表的扫描.因为多个行会对应同一个hash值,所以定位到hash值之后要

    对相应的表进行对比

    5:当hash冲突比较多时,效率会下降.可能会比b索引还要低

    BTREE:树索引

    基于树结构的索引,会从根节点开始查询

    索引使用时的一些注意事项

    1.索引不会包涵有NULL值的列

    如果一列中有NULL值,那么在创建复合索引的时候有NULL值的一列是会失效的

    2.使用短索引

    如果对字符类型的列进行创建索引的时候,最好指定长度.比较VARCHAR(20),如果列中的数据

    在前10或20位就能确定唯一性,就没有必要对整个列进行索引.短索引可以提高查询效率,节省存储

    空间和I/O操作

    3.索引列排序

    在一条查询语句中只会使用一条索引,如果where中使用了索引,那么order中将不会使用索引.

    所以尽量避免没有必要的排序

    4.like语句

    尽量避免使用like语句.在like语句中%AD%或_ad,以%和_形头的查询是会让索引失效的

    sdf%这样的不会使索引失效

    5.不要在列上进行运算

    6.不要使用not in和<>

    直引虽然会提高查询效率,但是如果对表创建过多索引则会降低更新效率

  • 相关阅读:
    redis 持久化
    Linux 配置 FastDFS
    查询相关
    外键查询
    pycharm 使用git
    比较时间
    文件导入import
    切分,字符串转列表
    时间相关
    django 自带序列化组件效果
  • 原文地址:https://www.cnblogs.com/taixuyingcai/p/6403813.html
Copyright © 2020-2023  润新知