MYSQL索引

本文详细介绍了数据库中索引的概念及其特点,包括不同类型的索引如普通索引、唯一性索引、全文索引等,并提供了建立索引的原则及具体创建与删除索引的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引的含义与特点

索引是创建在表上的,对数据库表的一列或者多列的值进行排序的一种结构,可以提高查询的速度。通常有BTREE 和 HASH 两种储存类型。

索引的分类

  1. 普通索引
  2. 唯一性索引(索引值是UNIQUE)
  3. 全文索引 (只有MyISAM支持,索引字段必须是CHAR ,CHARVAR ,TEXT类型)(FULLTEXT)
  4. 单列索引
  5. 多列索引(只有使用了索引中的第一个字段时才会触发索引)
  6. 空间索引(SPATIAL,只有MyISAM支持)

建立索引的原则

  1. 选择唯一性索引
  2. 为经常需要 ORDER BY ,GROUP BY ,DISTINCT ,UNION 的操作的字段建立索引,避免排序操作。
  3. 为经常作为查询条件的字段建立索引
  4. 限制索引的数目
  5. 尽量使用数据量少的索引(使用char(10)而不是char(100))
  6. 尽量使用前缀索引,不使用text,blog的全部来索引
  7. 删除使用很少或者不使用的索引

创建索引

  1. 创建表的时候创建
CREAETE TABLE TABLENAME(
    属性名1 数据类型 [完整性约束],
    ...
    [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY 
        [别名] (属性名1 [(长度)] [ASC |DESC]) 
);

ASC :升序排列
DESC: 降序排列
2. 在已经存在的表上创建索引

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX 索引名
    ON 表名 (属性名 [(长度)] [ASC |DESC]) 
  1. 使用ALTER TABLE 创建
ALTER TABLE 表名 ADD  [UNIQUE | FULLTEXT | SPATIAL] INDEX 
    索引名 (属性名 [(长度)] [ASC |DESC]) 
  1. 删除索引
DROP INDEX 索引名 ON 表名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值