• 有关mysql索引


    1.首先我们需要明确一下什么是索引以及为什么要使用索引:

      索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。在生产环境中,对于数据库我们最常进行的是查询的操作,而当我们的数据非常大的时候,提高我们的查询效率就变得尤为重要,而索引可以帮我们很好的优化这方面的性能.简单来说,索引就相当于我们新华大字典的音序表,可以快速的帮我们找到我们需要的数据所在的位置

    2.实现:

    索引通常是使用b+树这种数据结构实现的,b+tree 索引加速了数据访问,因为存储引擎不会再去扫描整张表得到需要的数据;相反,它从根节点开始,根节点保存了子节点的指针,存储引擎会根据指针快速寻找数据。

    3.索引的分类

    (1)普通索引index :加速查找
    (2)唯一索引
        主键索引:primary key :加速查找+约束(不为空且唯一)
        唯一索引:unique:加速查找+约束 (唯一)
    (3)联合索引
        -primary key(id,name):联合主键索引
        -unique(id,name):联合唯一索引
        -index(id,name):联合普通索引
    (4)全文索引fulltext :用于搜索很长一篇文章的时候,效果最好。
    (5)空间索引spatial

    4.索引的使用

    1 #方法一:创建表时
     2       CREATE TABLE 表名 (
     3                 字段名1  数据类型 [完整性约束条件…],
     4                 字段名2  数据类型 [完整性约束条件…],
     5                 [UNIQUE | FULLTEXT | SPATIAL ]   INDEX | KEY
     6                 [索引名]  (字段名[(长度)]  [ASC |DESC]) 
     7                 );
     8 
     9 
    10 #方法二:CREATE在已存在的表上创建索引
    11         CREATE  [UNIQUE | FULLTEXT | SPATIAL ]  INDEX  索引名 
    12                      ON 表名 (字段名[(长度)]  [ASC |DESC]) ;
    13 
    14 
    15 #方法三:ALTER TABLE在已存在的表上创建索引
    16         ALTER TABLE 表名 ADD  [UNIQUE | FULLTEXT | SPATIAL ] INDEX
    17                              索引名 (字段名[(长度)]  [ASC |DESC]) ;
    18                              
    19 #删除索引:DROP INDEX 索引名 ON 表名字;

    5.关于使用索引的优缺点

    优点:

      1)建立索引可以大大提高检索的数据,以及减少表的检索行数

      2)在表连接的连接条件 可以加速表与表直接的相连 

      3)在分组和排序字句进行数据检索,可以减少查询时间中 分组 和 排序时所消耗的时间(数据库的记录会重新排序)

      4)建立索引,在查询中使用索引 可以提高性能

    缺点:

      1)创建和维护索引的时候,会消耗时间

      2)创建出来的索引会占据一定的物理空间

      3)当对表的数据进行 INSERT,UPDATE,DELETE 的时候,索引也要动态的维护,这样就会降低数据的维护速度,(建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快)。

    
    


    人生没有白走的路,每一步都算数 恐惧是万恶之源
  • 相关阅读:
    Docker+Jenkins更换国内插件源
    招聘java工程师
    Apache seaTunnel 数据集成平台
    DBeaver连接MySQL问题的解决
    iphone的mov文件复制到电脑的方法
    IDEA中RestfulToolkit插件的安装及使用
    lwm2m 的notify 的机制
    ALI云接入学习
    CAT1 UIS8910模组对接阿里云平台
    任务的堆栈究竟有何魔力
  • 原文地址:https://www.cnblogs.com/niusha/p/10356093.html
Copyright © 2020-2023  润新知