我只在两个数据库上导出结构,并使用它们来比较我的开发服务器和生产服务器的模式。
我的一个字段有一个索引。
当我导出两个sql文件时,在一个文件中索引的定义如下:
KEY `assoc_id` (`assoc_id`),
在另一个像这样:
KEY `assoc_id` (`assoc_id`) USING BTREE,
生产服务器是开发服务器的克隆,相同版本的mysql。
导出是使用Navicat(OS X)完成的,但我不知道这是否相关,因为dump是mysql原生的...
这不是问题,因为在所有情况下两者都是btree,但我只是想知道为什么有时添加USING BTREE
,有时不添加。{/ p>
编辑:
刚看到同样的事情:ROW_FORMAT=DYNAMIC
答案 0 :(得分:0)
MySQL中几乎所有索引都是BTree。 InnoDB和MyISAM Engines的默认值为BTree。 FULLTEXT和SPATIAL索引也存在,但会明确说明。 MEMORY Engine和NDB Cluster还有其他例外,例如HASH。
因此,USING BTREE
是多余且可选的。无需担心。
可能差异源于两种不同的出口产品或版本。