我在MySQLWorkbench上注意到,您可以在进行工程前设计之前选择如何存储索引。存储类型为:
- BTREE
- 实时树
- 杂凑
经过研究,我发现了一些非常重要的信息,因此我正在寻找有关这些信息之间的区别和/或为什么应该选择一个而不是另一个的实用信息。
另外,我以前从未选择过存储类型,因此我假设MySQL正在选择默认存储类型(BTREE?)
我在MySQLWorkbench上注意到,您可以在进行工程前设计之前选择如何存储索引。存储类型为:
经过研究,我发现了一些非常重要的信息,因此我正在寻找有关这些信息之间的区别和/或为什么应该选择一个而不是另一个的实用信息。
另外,我以前从未选择过存储类型,因此我假设MySQL正在选择默认存储类型(BTREE?)
Answers:
BTree(实际上是B * Tree)是有效的有序键值映射。含义:
例如 “上午9点至下午5点之间的所有事件”,“以'R'开头的姓氏”
RTree是a spatial index
,表示它可以快速识别close
2个或多个维度中的值。在地理数据库中用于查询,例如:
从(x,y)到X米以内的所有点
哈希是无序的键值映射。它甚至比BTree更有效:O(1)
代替O(log n)
。
但是它没有顺序的概念,因此不能用于排序操作或获取范围。
附带说明一下,最初,MySQL只允许在MEMORY
表上使用哈希索引。但我不确定这些年来是否已更改。