对比一下MySQL的索引基本知识都有哪些

逻辑上:

  • Single column indexes单列索引

  • Combined Indexes, Multiple-Column Indexes多列索引

  • Unique 唯一索引

  • NonUnique非唯一索引

索引结构:

B-Tree:

  • 适合大量的增,删,改(OLTP)

  • 不能用包含OR操作符的查询

  • 适合高基数的列(唯一值多)

  • 典型的树状结构

  • 每个节点都是数据块

  • 大多数都是物理上一层,两层或三层不定,逻辑上三层,mysql一般都是3层除非数据量非常大 才会变成四层

  • 叶子块数据是排序的,从左向右递增

  • 在分支块和根块中放的是索引的范围

hash:

  • 适合小规模数据集快速定位

  • 适合管理内存结构体,LRU链表等

  • 不支持范围查询

  • 不支持模糊搜索

  • 不支持排序

tokudb 可以支持多个聚集索引