【mysql】mysql-索引

mysql-索引

  21.6.12【索引的分类】
    单列索引:索引加在一个列上
        普通索引(normal):
            alter table user add index `name`(`name`)
        唯一索引(unique):
            alter table user add unique index `code`(`code`);
        主键索引(primary):
            alter table user add primary key(`code`);
    组合索引():
            alter table user add index `id_name`(`id`,`name`);
    全文索引(fulltext):
        alter table user add fulltext index `code`(`code`);
    空间索引(spatial):
    
  21.6.12【索引的规则和使用】
    哪些字段适合加索引:
        【适合】
            1.与其他表进行连接时,连接的字段应该建立索引
            2.经常出现where中的字段,应该建立索引
        【不适合】
            1.频繁数据更改的表,不适合建立太多索引
            2.索引应该建立在小字段上,大文本字段不适建立索引
            
    不使用索引的情况:        
        1.若mysql估计扫全表比用索引更慢,则不用索引
        2.or的前后没有同时使用索引,则不用索引
        3.like 以%开始的,则不用索引
        4.字段参与计算、函数的,则不用索引
        5.隐式转换的则不用索引
        6.不等于的字段不参与索引
        7.复核字段不遵循最左原则的不用索引
        
    explain 详解:
    
        id:选择标识符
        select_type:表示查询的类型。
        table:输出结果集的表
        partitions:匹配的分区
        type:表示表的连接类型
        possible_keys:表示查询时,可能使用的索引
        key:表示实际使用的索引
        key_len:索引字段的长度
        ref:列与索引的比较
        rows:扫描出的行数(估算的行数)
        filtered:按表条件过滤的行百分比
        Extra:执行情况的描述和说明
       

【mysql】mysql-索引

上一篇:ArcGIS连接Postgres 数据库


下一篇:MySQL | MySQL5.7.* 安装