我正在检查我的数据库表,看来我无法解释:
CREATE TABLE `challenges` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`KIND` enum('1','2','3') NOT NULL DEFAULT '1',
`TITLE` varchar(255) NOT NULL DEFAULT '',
`DESCRIPTION` text NOT NULL,
`DATEAT` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`OWNER_ID` int(10) unsigned NOT NULL DEFAULT '0',
`SOLVEDREPLAY_ID` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `Index_2` (`OWNER_ID`),
KEY `Index_4` (`DATEAT`),
KEY `Index_3` (`SOLVEDREPLAY_ID`) **USING BTREE**,
KEY `Index_5` (`KIND`) **USING BTREE**,
CONSTRAINT `FK_challenges_1` FOREIGN KEY (`OWNER_ID`) REFERENCES `users` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `FK_challenges_2` FOREIGN KEY (`SOLVEDREPLAY_ID`) REFERENCES `uploads` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
Index_3和Index_5正在使用btree(在**之间,我不能使它变粗),但有趣的是其他人不是。所有索引都是“BTREE”,我只是不明白它为什么强调CREATE TABLE表达式
答案 0 :(得分:2)
这意味着您的索引在引擎盖下使用B树模型,而不是散列图。
B树是二叉树的推广。它们适用于不等式(<
,>
),范围和排序。哈希映射不支持这些事情,但对于相等/不等于检查更快。我不确定哪个对于像你有KIND的小枚举集更好。
无论如何,默认值是BTREE,因此这些陈述只是明确的。
这是MySQL的一个很好的参考:http://dev.mysql.com/doc/refman/5.5/en/index-btree-hash.html
答案 1 :(得分:1)
btree是数据结构。
这是索引数据的好方法。
也许google Btree