mysql创建二级索引的过程

因为mysql的二级索引中页节点中包含的是主键与索引字段的信息,所以如果主键改变,那么所有的二级索引相应的都需要进行重建。在二级索引创建的过程中,会扫描表,使用临时表或buffer对索引字段进行排序,然后创建键值对,这样比一行行的插入b-tree效率要高,填充率也高,避免了插入的过程中发生的分页产生。
另外关于create index与alter table两种方式创建索引的区别,alter table可以同时创建多个索引,避免了多次的扫描表。
创建索引的时候,需要的内存空间由参数innodb_sort_buffer_size指定,对于一个典型的排序来说,可以使用下面的方程来评估需要的内存:
(6 /FTS_NUM_AUX_INDEX/ * (3*@@global.innodb_sort_buffer_size)
+ 2 * number_of_partitions * number_of_secondary_indexes_created
* (@@global.innodb_sort_buffer_size/dict_index_get_min_size(index)*/)
* 8 /64-bit sizeof *buf->tuples/”)

关于索引创建时的并发:https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-concurrency.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值