我想将内存表用作一组队列。
因此,将有一个带有 int 列 a 和 b 的内存表。
查询如下:
SELECT b FROM table WHERE a=? 按 b DESC 限制 1000 排序
我试过这个:
create table `test_table` (
`a` int(11) not null,
`b` int(11) not null,
primary key (`a`,`b`) using btree
) engine=memory
但主键仍然是 HASH:
show index from `test_table`
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
---------- ---------- -------- ------------ ----------- --------- ----------- -------- ------ ------ ---------- -------
test_table 0 PRIMARY 1 a (NULL) (NULL) (NULL) (NULL) HASH
test_table 0 PRIMARY 2 b (NULL) 0 (NULL) (NULL) HASH
这是否意味着,我需要
a
为此类查询创建另一个 key()?为什么主键不能是 BTREE 索引?如果我将主键更改为普通键有什么区别?