gpt4 book ai didi

MySQL - 同一列的 BTree 和哈希索引

转载 作者:行者123 更新时间:2023-11-29 06:35:31 24 4
gpt4 key购买 nike

我曾尝试查找类似的问题,但没有找到任何问题,除了有关同一列的两个索引的问题(一般而言)。

假设我们有一个包含 COL 列的表。该表(以及整个数据库)对于客户端来说是只读的(让我们假设它更新一次/每隔很长一段时间更新一次,并且仅由后端服务更新)。因此,插入/更新时间无关紧要。

对于此列,有一些频繁使用的查询,用于搜索 COL 值在某个范围内的行,还有一些更常用的查询,用于搜索 COL 值在某个范围内的行> 直接与值进行比较(相等性检查)。

考虑到上述情况,在 COL 上同时保存 BTREEHASH 索引是否有益?优化器是否会使用 BTREE 索引进行范围查询,使用 HASH 索引进行直接比较查询?如果 COL 的类型为 varchar(256),答案会改变吗?

谢谢!

最佳答案

我会坚持使用 B 树索引,因为无论如何你都需要它。使用哈希索引也可能会带来一些小的性能提升,但您也会占用更多的内存。

更重要的是,哈希索引不适用于最常见的存储引擎(InnoDB 和 MyISAM)——documentation 中的表 13.1 .

关于MySQL - 同一列的 BTree 和哈希索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54079550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com