龙空技术网

【Java面试】Hash索引有哪些优缺点?搞懂这道题o...

灰灰讲Java 519

前言:

此刻兄弟们对“oraclehash索引”可能比较注意,小伙伴们都需要剖析一些“oraclehash索引”的相关知识。那么小编同时在网络上收集了一些有关“oraclehash索引””的相关知识,希望姐妹们能喜欢,小伙伴们一起来学习一下吧!

搞懂这道题Offer不用愁!Hash索引有哪些优缺点?

你简介上说你精通Mysql,那你能给我说一下Mysql的存储引擎吗?你能说一下里面的一个Hash索引的优缺点吗?Mysql的存储引擎其实我是了解的。

你刚刚讲的InnoDB索就是Hash索引,像nooDB其实是不支持的,它的优点就是查起来非常快。缺点可能就是不能够范围查询,不错,看了你对这方面的技术确实很了解。不是在吹牛这道题的文字版,我已经整理在五十万字的面试文档里面,大家如果有需要可以在评论区留言领取。

OK Mysql的存储引擎其实是用来做数据存储的,用的比较多的,比如说Maxim,Inno的B以及什么memory。其实它里面支持两个非常重要的索引类型,一个是毕加数,一个是Hash。

Hash索引顾名思义它的重点在Hash,它是基于Hash函数来映射到需要解锁的数据的,跟我们的HashMap去查询数据的思想是一样的,能够通过一个Hash来快速解锁到想要的数据。

它的优点也很明显。

·第一因为是k-v的形式,所以它的查询性能非常快,并且它是OET,它不会受数据量的大小来影响它的查询性能。

·第二个数据结构比较简单,易维护,因为基于Hash表去实现了。

·第三等值查询非常快,并且只适合等值查询,因为我得确定了key才能解锁到数据。所以它的缺点也很明显,它只支持单个的等值查询,不支持范围查询。所以像InnoDB这种范围查询场景比较多的一些存储引擎,它是不支持Hash索引的,但是它底层会有Hash的自适应优化。

·第二个由于基于Hash函数去保存数据,所以它肯定会有Hash冲突,那么就必须要去解决Hash冲突。所以可能会导致额外的一些空间或者时间。

既然不支持范围查询,也不支持前缀所以模糊查询等等场景,回答的还可以。不过我们这边对技术的要求可能会比较高。具体面试结果我们这边讨论好了以后再通知你。

点赞关注评障。

标签: #oraclehash索引