mysql 索引详解

一、mysql 索引类型

        1、普通索引(Basic Index/Non-Unique Index)

                普通索引是最基本的索引类型,他没有任何字段值唯一性的限制。

                创建普通索引的目的是为了加速数据检索的速度。

        CREATE INDEX '索引名' ON '表名'('字段名');

        2.唯一索引(Unique Index)

                唯一索引要求索引列的所有值都必须是唯一(允许有空值NULL)。

                一个表可以有多个或者一个索引,并且通常用于主键之外需要唯一约束的列。

       CREATE UNIQUE INDEX '索引名' ON '表名'('字段名');

        3.主键索引(Primary Key Index)

                主键索引是一种特殊的唯一索引,它是表的主键列上的索引。

                每个表只能有一个主键索引,且必须是唯一值并且不允许为NULL。

                当创建表时指定主键,MYSQL会自动创建此主键索引。

        CREATE TABLE table_name (
            id INT PRIMARY KEY,
            ...
        );
   

          4.组合索引(Composite Index/Multi-Column Index)

                组合索引是指在一个索引中包含两个或更多列的索引。

                这种索引可以按照多个列进行排序,并且在查询条件中使用这些列的特定顺序时能提高效率。

          CREATE INDEX '索引名' ON '表名'('字段名1', '字段名2', ...);

一、索引的利弊

1、索引的好处

  • a、提高数据检索的效率,降低检索过程中必须要读取得数据量,降低数据库IO成本。
  • b、降低数据库的排序成本。因为索引就是对字段数据进行排序后存储的,如果待排序的字段与索引键字段一致,就在取出数据后不用再次排序了,因为通过索引取得的数据已满足排序要求。另外,分组操作是先排序后分组,所以索引同样可以省略分组的排序操作,降低内存与CPU资源的消耗。

2、索引的弊端

  • a、索引会增加 增、删、改操作所带来的IO量与调整索引的计算量。
  • b、索引要占用空间,随着数据量的不断增大,索引还会带来存储空间的消耗。

二、判断是否应该建索引的条件

  1. 较频繁的作为查询条件的字段应该要创建索引
  2. 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件
  3. 增、删、改操作较多的数据库字段不适合建索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值