【738、索引底层常见的数据结构,MyISAM 引擎和 InnoDB 引擎用的是哪种】

52 阅读2分钟

常见的底层数据结构包括:

  1. 数组(Array):具有连续内存存储的数据结构,通过索引访问元素。
  2. 链表(Linked List):由节点组成的数据结构,每个节点包含数据和指向下一个节点的指针。
  3. 栈(Stack):一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。
  4. 队列(Queue):一种先进先出(FIFO)的数据结构,可以在队尾插入元素,在队头删除元素。
  5. 哈希表(Hash Table):使用哈希函数将键映射到数组索引的数据结构,提供高效的查找、插入和删除操作。
  6. 树(Tree):一种非线性的数据结构,包括二叉树、AVL树、B树等,用于高效的搜索和排序操作。
  7. 图(Graph):由节点和边组成的数据结构,用于表示各种关系和连接。

MySQL中的两个常见存储引擎 MyISAM 和 InnoDB 使用的索引数据结构是不同的。

  1. MyISAM引擎使用的索引结构是B+树(B+ Tree)。B+树是一种多路搜索树,具有平衡性和有序性,适合范围查询。在MyISAM引擎中,每个索引都是独立的B+树,包括主键索引和辅助索引。
  2. InnoDB引擎使用的索引结构也是B+树,但它还引入了聚簇索引(Clustered Index)。聚簇索引将数据行物理上按照索引顺序进行存储,使得按照索引的查询更加高效。在InnoDB引擎中,表数据行按照聚簇索引的顺序存储,而辅助索引则使用B+树结构。

总结起来,MyISAM引擎使用的是独立的B+树索引,而InnoDB引擎使用的是B+树索引,并且具有聚簇索引的特性。