B+树的代价分为两个方面:空间、时间

空间的代价

每一颗B+树的每个节点都是一个数据页。一个数据页默认占用16KB空间,而一颗很大的B+树会有很多数据页组成,这将占用很大空间

时间的代价

维护节点和记录的顺序

我们在增删改查时,都需要修改索引树。
B+树中每层节点都是按照索引值从小到大的排序。无论是叶子节点还是内节点中的记录,都按照索引列的值从小到大形成一个单相链表。
增删改查会对索引树进行破坏,所以存储引擎需要额外的时间进行页分裂、页面回收等操作,以维护节点和记录的顺序。
如果有很多索引,那么可能需要维护很多B+树

成本分析耗时

在执行一个查询语句时,我们需要生成一个执行计划。 一般情况下,我们在一条查询语句时,只会使用一个二级索引,在生成执行计划时,需要计算不同索引所需的成本,最终选择成本最低的那个索引进行查询,如果建立很多索引,就会导致分析过程中耗时过多。