首页 > 试题广场 >

在MySQL中,关于HASH索引,下列描述正确的是(

[不定项选择题]
在MySQL中,关于HASH索引,下列描述正确的是( )
  • 只用于使用=或者 < = >操作符的等式比较
  • 优化器不能使用HASH索引来加速Order By操作
  • 如果将一个MyISAM表改为HASH索引的MEMORY表,不会影响查询的执行效率
  • 只能使用整个关键字来搜索一行
HASH索引:利用哈希函数,计算存储地址,检索时不需要像Btree那样,从根节点开始遍历,逐级查找。
       
 优点: 查找效率高。(C选项)
 局限:     
      仅仅满足=,in,<=>,查询,不能范围查询(原先有序的键值经过哈希函数运算,可能不再连续);(A选项)
      无法用于排序操作(order by);(B选项)
      当重复值时,效率并不比BTree高;
      不能利用部分索引键查询;(D选项)
发表于 2017-07-05 21:19:16 回复(2)

BTREE索引和 HASH 索引的差异:

(1)HASH索引只用于使用 = <=> 操作符的等式比较。如果一定要使用范围查询 的话,只能使用BTREE索引。

2)优化器不能使用 Hash 索引来加速 order by 操作。

3)使用 Hash 索引时 MySQL 不能确定在两个值之间大约有多少行。如果将一 MyISAM表改为的 Hash 索引 memory 表,

会影响一些查询的执行效率。

(4)Hash索引只能使用整个关键字来搜索一行。

发表于 2017-05-31 19:59:23 回复(0)
枯了T-T
发表于 2019-12-23 14:38:48 回复(3)
除了 <=> ,还有两个其他的操作符用来处理某个值和NULL做比较,也就是IS NULL and IS NOT NULL。他们是ANSI标准中的一部分,因此也可以用在其他数据库中。而<=>只能在mysql中使用。 你可以把<=>当作mysql中的方言。   'a' IS NULL ==> 'a' <=> NULL 'a' IS NOT NULL ==> NOT('a' <=> NULL)
发表于 2018-04-10 07:53:18 回复(0)
<=>操作符好像和=类似?
发表于 2017-09-06 18:15:49 回复(0)
只用于使用=或者 < = >操作符的等式比较
优化器不能使用HASH索引来加速Order By操作
只能使用整个关键字来搜索一行
发表于 2017-10-09 15:57:41 回复(0)
a是对的
编辑于 2024-03-11 01:43:35 回复(0)
HASH索引:利用哈希函数,计算存储地址,检索时不需要像Btree那样,从根节点开始遍历,逐级查找。 优点: 查找效率高。(C选项) 局限: 仅仅满足=,in,<=>,查询,不能范围查询(原先有序的键值经过哈希函数运算,可能不再连续);(A选项) 无法用于排序操作(order by);(B选项) 当重复值时,效率并不比BTree高; 不能利用部分索引键查询;(D选项)
发表于 2021-06-16 00:11:29 回复(0)
仅仅满足=,in,<=>,查询 A也没IN啊
发表于 2020-07-07 09:32:10 回复(0)
1、在MySQL中,关于HASH索引,描述正确的有:(1)只用于使用=或者< = >操作符的等式比较;(2)优化器不能使用HASH索引来加速Order By操作;(3)只能使用整个关键字来索引 一行。

2、BTREE索引和HASH索引的差异:
(1)HASH索引只用于使用=或<=>操作符的等式比较。如果一定要使用范围查询的话,只能使用BTREE索引。
(2)优化器不能使用Hash索引来加速Order By 操作。
(3)使用Hash索引时,MySQL不能确定在两个值之间大约有多少行。如果将一个MyISAM表改为Hash索引memory表,会影响一些查询的执行效率。
(4)Hash索引只能使用整个关键字来索引一行。
发表于 2017-07-25 08:54:08 回复(0)