我使用此查询创建了一个表:
create table tblz (
id int not null auto_increment primary key,
code varchar(20))
然后我添加了一个索引:
alter table tblz add index codeind (code)
我添加了4条记录:
insert into tblz (code) values ('')
insert into tblz (code) values ('Y')
insert into tblz (code) values ('Z')
insert into tblz (code) values ('')
之后
select * from tblz
:
这是结果:
+----+------+
| id | code |
+----+------+
| 1 | |
| 4 | |
| 2 | Y |
| 3 | Z |
+----+------+
我的问题是:
由于这个问题Is the primary key automatically indexed in MySQL?,主键是聚簇索引,那么为什么MySQL没有根据主键值排列记录?或者它是否由于添加的索引而排列记录而不管聚集索引?
答案 0 :(得分:1)
MySQL says行结果以“无特定顺序”返回。实际的检索顺序取决于引擎,但不保证任何特定的排序。您需要使用ORDER BY
(警告 - 它可能很慢,特别是对于大型结果集)或者在检索数据时进行排序。
PRIMARY KEY
已编入索引。 KEY
和INDEX
是同义词,虽然没有PRIMARY INDEX
语法,但创建的任何键都会被编入索引。