Mysql 数据存储结构
mysql 数据库存储结构
B-tree 与哈希索引的区别
B-tree索引
B-tree 索引是按照顺序存储的,所以,如果按照B-tree 索引,可以直接返回带顺序的数据,但这个数据只是该索引列含有的信息,因此是顺序I/O。适用于精准匹配,范围匹配,最左匹配
Hash索引
Hash索引
索引列值的哈希值+数据行指针:因此找到后还需要根据指针去找数据,造成随机I/O
适用于精确匹配
不适用模糊匹配,范围匹配,不能排序
总结:
1.hash索引仅满足‘=’,‘IN’,和‘<=>’ 查询,不能使用范围查询
因为hash索引比较的是hash运算之后的hash值,因此只能进行等值的过滤,
不能基于范围的查找,因为经过hash算法处理后的hash值的大小关系,不能保证与
处理前的hash大小关系对应。
总结:哈希适用于再小范围的精确查找,在列数据很大,又不需要排序,又不需要模糊查询,范围查询时有用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通