数据结构
-
数组:查询快,插入慢,查找复杂度 O(N)
-
链表:查询慢,插入快,查找复杂度 O(N)
-
哈希表:查询复杂度 O(1)
-
二叉树:查找复杂度 O(logN)
树是一种非线性的数据结构,相对于线性的数据结构(链表、数组)而言,树的平均运行时间更短(往往与树相关的排序时间复杂度都不会高)
数据库索引是B+树,是平衡树的一种
如果一棵普通的树在极端的情况下,是能退化成链表的(树的优点就不复存在了)
B+树是平衡树的一种,是不会退化成链表的,树的高度都是相对比较低的(基本符合矮矮胖胖(均衡)的结构)
-
B+树是一颗平衡树,如果我们对这颗树增删改的话,那肯定会破坏它的原有结构。
-
要维持平衡树,就必须做额外的工作。正因为这些额外的工作开销,导致索引会降低增删改的速度