MySql数据库10-提升-性能优化0-索引

索引是什么?

索引是一种数据结构,一种可以提高数据库检索目标数据性能的数据结构。
数据库还维护着满足特定查找算法的数据结构,实现了高级查找算法。
一般来说索引本身也很大,基本上都是以索引文件的形式存储在磁盘上的,唯一索引默认是使用B+树索引。

索引的优缺点

优点:提高数据的检索效率,降低数据的IO成本,通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。
缺点:索引也是一张表,它记录了主键和索引字段,并指向实体表的记录,索引也是要占用磁盘空间的,索引虽然提高了查询速度,但是他会降低更新表数据的速度,因为它要同时更新索引。

索引的分类

单值索引:即一个索引只包含单个列,一个表可以有多个单列索引;
唯一索引:索引列的值必须唯一,允许有空值;
复合索引:一个索引包含了多个列

索引语法

创建索引

建表时创建索引
CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX 自定义索引名
[USING 索引类型]
ON 表名(列名[,列名...]);
动态添加索引
  1. 给表添加主键或者唯一约束的时候会自动添加索引
  2. 给表添加普通索引
    (索引值可以出现多次)
ALTER TABLE 表名 ADD INDEX 索引名(字段[列表])
  1. 给表添加全文索引
ALTER TABLE 表名 ADD FULLTEXT 索引名(字段[列表])

查看索引

SHOW INDEX FROM 表名;

删除索引

DROP INDEX 索引名 ON 表名;

索引的使用原则

  1. 对查询频率较高并且数量大的表可以创建索引。
  2. 在查询时的where条件中,挑选出最常用过滤效果最好的列的组合来创建索引。
  3. 对于频繁更新数据的表,但是查询频率不高的表,少创建索引。
  4. 使用短索引,假如构成索引的字段总长度比较短,那么可以减少磁盘存储,相应的就可以提高索引的I/O效率。
  5. 组合索引,相当于创建了多个索引,如果where条件中使用了组合索引的某几个字断,那么mysql就可以利用组合索引来提升查询效率。
    例如:
create index `user` on name_age_email(name,age,email);
相当于
对name创建了索引;
对name,age创建了索引;
对name,age,email创建了索引;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值