mysql----索引


索引:
    优势:在数据表中有海量数据时能帮助快速查询记录。
    劣势:索引本身也是一张表,占用磁盘空间,当进行update insert delete操作时耗时更长,因为需要维护索引表  
    
    索引的分类:
        单值索引:依赖单个列建立的索引,一张表可以有多个单值索引;
        唯一索引:索引列的值必须唯一,允许出现NULL
        复合索引:一个索引依赖表的多个列
        全文索引:只有在myisam的引擎上才能使用,只能在char,varchar,text类型字段上建立索引;
        空间索引:对空间数据类型字段建立的索引;
                
    索引操作:
        创建:create index index_name on table(列名1,列名2);
        删除:drop index index_name on table_name;
        查看:show index from table_name;
        自动创建索引:当表定义了主键时会自动创建对应的唯一索引;
                        当表定义了外键时,会自动创建普通索引;
                
    explain:分析语句
        explain select * from emp where id = 1 \G;
        的结果中如果key为NULL,表示本次执行没有依赖索引查询。
    
    常见的创建索引的场景:
        1.主键自动创建唯一索引;
        2.频发作为查询条件的字段;
        3.与其他表中建立外键的字段;
        4.where条件后不会跟的字段不用创建索引;
        5.频发更新的字段不适合创建索引;
        6.排序字段和分组字段适合创建索引。

发布了76 篇原创文章 · 获赞 21 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/shen_chengfeng/article/details/103844894