• mysql索引类型-方法-形式-使用时机-不足之处--注意事项


    一、索引的类型
    1、普通索引   增加 create  index  index_name on table(colume(length)); 
                         例子:create index index_order_no on t_insruance_new_order(order_no(20))
                         删除 drop index index_name on table_name /alter table table_name drop index index_name
    2、唯一索引   create unique  index  index_name on table(colume(length));
    3、主键索引   主键默认就有索引
    4、全文索引   fulltext
    5、组合索引   create index index_name_age on t_insruance_new_order_no(name(20),age) //缩小索引的长度可以增加insert的速度
                          组合索引可以是---name,age或者name ,但是不能是age(遵循"最左前缀原则")
    -----索引方法:b_tree和hash方法,通常使用b-tree,hash索引,是进行hash处理后的hash值,大小无顺序,但是效率大于B-tree,因为b-tree是从根节点往枝节点,在到叶节点效率比较低
     二、索引的形式
    1、单列索引,多列索引   查询时候,mysql只能执行一个索引,所以多列索引会找出这几个索引中限制最高的一个索引,进行查询
    三、使用索引的时机
         一般来说,在where和join中需要创建索引,但是也不完全是,因为mysql只对> ,>=,  =,<=,<,between,in 和一些like时候才使用索引,
         例子:使用like时候要特别注意这一点
         对于like来说,使用通配符号(%或者_)开头时候不会使用索引
         select  * from mytable where name like "%俊";  不会使用索引
         select *  from mytable where name like "杨%";  会使用索引
    四、索引的不足之处
         1、建立索引会增加查询的速度,会降低更新表的速度,更新表(update.delete.insert.)对表格进行更新的同时,还会对索引文件进行更新
         2、建立索引会占用磁盘空间的索引文件,一般情况下不会有太大问题,但是在一个大数据表格中,创建了多种组合索引,索引文件会膨胀的很         快。
    五、使用索引的注意事项
          1、有null值的列,索引失效,所以创建索引的列默认为非null
          2、使用短索引,可以提高检索速度,还可以减少磁盘空间和io操作
          3、索引列的排序,mysql查询只使用一个索引,所以多个索引查询只有用一个最严格的索引,为了提升查询的效率可以添加组合索引,
          4、like模糊查询,通配符放在最前面,索引失效
          5、不要在列上进行计算 select *  from mytable where date(time)>'2007';索引失效---where time>'2007-01-01'
          6、不适用not in和 <>操作
    六、索引的方法
    借鉴自http://blog.sina.com.cn/s/blog_4aca42510102v5l2.html
    1、hash
         这个是以将数据信息进行hash计算,然后存储在一张hash表中,每次来查询都需要遍历整个表,如果数据量很大的情况下,效率很低,并且hash索引背MYISAM默认
    2、T-TREE
         树,
     
  • 相关阅读:
    vue系列教程:插值
    docker load 镜像时出现:open /var/lib/docker/tmp/docker-import-500852078/repositories: no such file or dir
    Day 18: 记filebeat内存泄漏问题分析及调优
    Filebeat 启动关闭流程
    docker加速
    Docker镜像保存save、加载load(外网转移至内网)
    filebeat.yml(中文配置详解)
    kafka介绍
    基于统一开发平台的微服务架构转型升级之路 | 某国有大型银行案例
    转 -Filebeat + Redis 管理 LOG日志实践
  • 原文地址:https://www.cnblogs.com/shuaiandjun/p/5966653.html
Copyright © 2020-2023  润新知