zoukankan      html  css  js  c++  java
  • mysql索引

    索引的分类:

    分为3类:

    1、单列索引,或者叫单值索引,即一个索引只包含单个列,一个表可以包含多个单列索引;

    2、唯一索引,索引列的值必须唯一,但允许包含多个空值;

    3、复合索引,即一个索引包含多个列。

    创建索引:

    可以在创建表的时候创建索引,也可以随时添加表的索引。

    单独创建索引的语法:

    全参数:

    create [unique|fulltext] index 索引名称  [using index_type] on  表名(列名1,列名2...);

     常用:   

    create index 索引名称 on 表名(列名1,列名2...);

    默认创建普通索引,索引结构用BTree数据结构

    表默认会对主键创建主键索引

    查看索引:

    show index from 表名;

    删除索引:

    drop index 索引名称 on 表名;

    alter语句添加索引:

    alter table 表名 add unique 索引名称(列名...);

    alter talbe 表名 add index 索引名称(列名);

    alter table 表名 add fulltext 索引名称(列名);

    索引的设计原则:

    对什么样的表什么字段建立什么样的索引:

    1、表:查询频次高、数据量大的表;

    2、字段:经常出现在where子句中的字段;

    3、尽量使用唯一索引,区分度越高,索引的检索效率越高;

    4、尽量使用短索引,索引也是一种数据结构,也是存放在磁盘空间中,索引长度影响IO性能;

    5、索引并不是多多益善,索引也是一种数据结构,在数据的增删改操作时,也需要维护索引信息,索引过多,影响数据的增删改性能;

    6、尽可能利用最左前缀法则,建立一条复合索引,相当于建立多个索引。

    如复合索引(列名1,列名2,列名3),相当于建立3个索引:

    第1个索引:列名1 

    第2个索引:列名1 列名2

    第3个索引:列名1 列名2 列名3

    ----------------------------------------------------------------------------------------------------------------每天学习一点点,一遍不行,再来一遍----------------------------------------------

  • 相关阅读:
    ngnix 配置反向代理
    tomcat nio
    spring boot 1
    mongodb 总结
    spring profile 多环境配置管理
    分布式锁实现
    2020真难
    NSRunLoopCommonModes和NSDefaultRunLoopMode区别(Timer)
    数据统计---埋点
    【问题汇总】iOS数据持久化
  • 原文地址:https://www.cnblogs.com/juanzila/p/15602946.html
Copyright © 2011-2022 走看看