• 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

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

  • 相关阅读:
    要如何用[ZT]sendmessage來切換PageControl1 的TabSheet2呢
    Delphi 常用API 函数
    [ZT]如何得到其他程序的Richedit中的RTF数据
    转帖一篇关于DELPHI调试的文章AQTime
    讀取股票資料檔與指標計算方法之封裝
    GC的三代回收机制
    SQL语句的解析过程
    .Net 垃圾回收机制整理
    美国人吃了交通罚单怎么办?
    Ihttphandler,Ihttpmodule
  • 原文地址:https://www.cnblogs.com/juanzila/p/15602946.html
Copyright © 2020-2023  润新知