欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-23 19:03:13
索引是什么?索引是一种数据结构,一种可以提高数据库检索目标数据性能的数据结构。数据库还维护着满足特定查找算法的数据结构,实现了高级查找算法。一般来说索引本身也很大,基本上都是以索引文件的形式存储在磁盘上的,唯一索引默认是使用B+树索引。索引的优缺点优点:提高数据的检索效率,降低数据的IO成本,通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。缺点:索引也是一张表,它记录了主键和索引字段,并指向实体表的记录,索引也是要占用磁盘空间的,索引虽然提高了查询速度,但是他会降低更新表数据的速...

索引是什么?

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

本文地址:https://blog.csdn.net/baidu_32689899/article/details/107280666