• 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

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

  • 相关阅读:
    利用xslt合并多个xml文件到一个文件
    如果利用网络推广老家的特产水果?
    C#并行编程中的Parallel.Invoke
    Asp.Net MVC实现优酷(youku)Web的上传
    修改用户名后TSF出现"需要本地工作区。工作区 xxx 并未驻留在本计算机上"
    JS浏览器滚轮事件实现横向滚动照片展
    Android实现dialog时候弹出软键盘dialog移位问题
    快速搭建多线程Windows服务解决方案
    Difference between WCF and Web API and WCF REST and Web Service
    WPF应用程序的性能提升(一)
  • 原文地址:https://www.cnblogs.com/juanzila/p/15602946.html
Copyright © 2020-2023  润新知