zoukankan      html  css  js  c++  java
  • Mysql基础知识:索引

    Mysql 索引

    1. 索引的概念

      索引是创建在表上的,对数据库表中的一列或多列的值进行排序的一种结构。

      索引有2种存储类型:B型树索引 和 哈希索引。InnoDB和MyISAM存储引擎支持B型树索引,MEMORY存储引擎支持哈希索引。

      优点:提高检索数据的速度。对于有依赖关系的子表和父表之间的联合,可提高查询速度;使用分组和排序子句进行数据查询,可显著节省查询时间。

      缺点:创建和维护需要耗费时间,耗费的时间随着数据量的增加而增加;索引需要占用物理空间;增加、修改和删除索引时,需要动态的维护索引,会造成数据维护速度降低。

    2.索引的分类

      1)普通索引:

        不加任何限制条件的索引。

      2)唯一性索引:

        UNIQUE参数设置唯一性索引。

      3)全文索引:

        使用FULLTEXT参数设置为全文索引。(全文索引只能创建在CHAR、VARCHAR或TEXT类型字段上)

      4)单列索引:

        为表的单个字段创建索引。

      5)多列索引:

        为表的多个字段创建一个索引。

      6)空间索引:

        使用SPATIAL参数设置。

    3. 索引的设计原则

      1)选择唯一性索引;

      2)为经常需要排序、分组和联合操作的字段建立索引;

      3)为常作为查询条件的字段建立索引;

      4)限制索引的数目;

      5)尽量使用数据量少的索引;

      6)尽量使用前缀索引;

      7)删除不再使用或很少使用的索引。

    4. 创建索引

      1)创建表的时候创建索引

    CREATE  TABLE  表名 ( 属性名   数据类型   约束条件,
                          属性名   数据类型   约束条件,
                          ...
                          UNIQUE | FULLTEXT | SPATIAL    INDEX | KEY
                                   别名  ( 属性名1 (长度)   ASC | DESC)
                        );

        INDEX和KEY表示指定字段为索引,两者作用相同选其一即可。

        ASC/DESC表示升序排列和降序排列。

      2)为已经存在的表创建索引

    CREATE   UNIQUE | FULLTEXT | SPATIAL   INDEX   索引名
                ON   表名   ( 属性名 (长度)   ASC | DESC );

      3)用ALTER TABLE语句创建索引

    ALTER  TABLE   表名   ADD   UNIQUE | FULLTEXT | SPATIAL   INDEX          
                              索引名   ( 属性名 (长度)   ASC | DESC );

    5. 删除索引

    DROP  INDEX   索引名   ON   表名;
  • 相关阅读:
    Uva673 Parentheses Balance
    cordforce Educational Codeforces Round 47 补题笔记 <未完>
    cordforce 495 补题 <未完>
    linux 基本命令笔记
    app审核相关
    CATransform3D
    UITableView点击切换状态分析
    iOS大转盘抽奖
    被忽视的控件UIToolbar
    AVPlayerViewController视频播放器
  • 原文地址:https://www.cnblogs.com/jx-yangbo/p/6391623.html
Copyright © 2011-2022 走看看