Mysql 如何确定索引是否为;使用哈希“;?

Mysql 如何确定索引是否为;使用哈希“;?,mysql,Mysql,我在MySQL 5.6.39中有一个表定义: CREATE TABLE `_fulltexttest` ( `hello` text NOT NULL, `bar` varbinary(255) NOT NULL, `baz` varbinary(255) NOT NULL, UNIQUE KEY `whatev2` (`baz`) USING HASH, KEY `whatev` (`bar`) USING HASH, KEY `baz` (`baz`) USING H

我在MySQL 5.6.39中有一个表定义:

CREATE TABLE `_fulltexttest` (
  `hello` text NOT NULL,
  `bar` varbinary(255) NOT NULL,
  `baz` varbinary(255) NOT NULL,
  UNIQUE KEY `whatev2` (`baz`) USING HASH,
  KEY `whatev` (`bar`) USING HASH,
  KEY `baz` (`baz`) USING HASH,
  KEY `baz_2` (`baz`) COMMENT 'bacon',
  FULLTEXT KEY `hello` (`hello`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
如您所见,一些索引使用HASH

但是,当我尝试时:

 show indexes from _fulltexttest in mydb;
或:

两者都没有在任何地方显示“散列”。
索引类型是
BTREE

但是如果我做一个
显示表
,它会显示在定义中,所以很明显它必须保存在某个地方


我可以运行什么查询来获取完整的索引定义,包括
使用散列
部分?

确定索引是否使用散列是正确的

答案是:事实并非如此


MySQL 5.6的文档中说。

您可以将
SHOW CREATE\u fulltexttest
的输出添加到您的问题中吗?这真的很奇怪,因为InnoDB应该支持散列索引。同样,这里测试了它的所有内容。结果是一样的,创建了table table,但索引类型显示为btree。非常奇怪(10.1.13-MariaDB)@TimBiegeleisen这里的show create命令显示create语句完全等于typed(即哈希索引类型)。@JorgeCampos是的,当然你是对的。这很奇怪。@TimBiegeleisen,这是SHOW CREATE TABLE _fulltexttest
的输出,我实际上在使用MySQL 5.6.39。。。但我想我们试着在某个时间点转换成MariaDB,然后再转换回来。也许它有点不稳定…@LightnessRacesinOrbit那是me@mpen该死,你被一个评论者搞糊涂了。@JorgeCampos哦。。。嗯,我想那就对了。谢谢奇怪的是,它在“SHOW CREATE”中出现了。重点仍然是它反映了你的要求,而不是你得到了什么。表定义的一部分是“我想使用
HASH
索引”,这仍然是正确的,尽管请求从未得到满足。
SELECT *
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'mydb' and TABLE_NAME='_fulltexttest'