怎么理解索引:
一个表中有很多列,对其中一个列创建了索引,那么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)就是在添加索引的同时允许操作数