当前位置: 移动技术网 > IT编程>数据库>Mysql > MySql数据库10-提升-性能优化0-索引

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

2020年07月14日  | 移动技术网IT编程  | 我要评论

索引是什么?

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网