怎么理解索引:
一个表中有很多列,对其中一个列创建了索引,那么mysql就会对这个列的数据进行排序,好处就是查询会非常的快。
B+树的缺点: 当对表的字段进行修改时,维护B+树索引的代价会比较大。
一、索引的操作
① 创建索引
alter table x add index a_index (a); ## 给x表的a字段创建一个普通索引
alter table x add unique index b_index (b); ## 给x表的b字段创建一个唯一索引

② 删除索引
alter table x drop index b_index; ## 删除索引

这里需要注意一个参数: innodb_online_alter_log_max_size
innodb_online_alter_log_max_size表示当我们在线操作alter时会产生日志,这个日志的最大值,默认是128M, 当我们在500W的数据加索引时,这个值可能会不够就会报错。所以建议在my.cnf设置一下。
③ 当我们在线上500W数据添加索引时,会影响select, update ,insert 延迟吗?
我们可以通过mysql的官网
官方在线ddl操作 允许并发DML(Data Manipulation Language)就是在添加索引的同时允许操作数

本文详细介绍了Mysql5.7的索引操作,包括创建、删除索引及其对数据操作的影响。讨论了在线添加索引时的注意事项,如innodb_online_alter_log_max_size参数设置,以及查看所有索引的方法。强调了索引的选择性和复合索引(联合索引)的使用,解释了不同排序方式对性能的影响。同时,针对并发大、有主从复制的场景,提出了使用Percona Toolkit进行在线DDL操作的解决方案。最后,提供了查询无主键表的方法和索引区分度分析。
最低0.47元/天 解锁文章
234

被折叠的 条评论
为什么被折叠?



