一万行数据,排序:

  1. select * from goods order by id limit 100;    =====》id是索引

时间时:0.04 sec

2. select * from goods order by id,cat_id limit 100;

时间是:0.16 sec

3.select * from goods order by id,cat_id limit 100;    =====>id cat_id有联合索引

时间是:0.02 sec


备注:innodb索引与数据的关系

主键索引,即存储索引值,又在叶子中存储行的数据

如果没有主键,则会Unique key做主键

如果没有Unique,会系统生成一个内部的rowid的主键

像innodb中,主键索引结构中,即存储索引又存储行数据的,叫聚簇索引


上述案列中:如果用主键索引id排序,每一次会跨越好多块,尤其如果表中有varchar(3000)这样的字段,会更慢

    在id,cat_id排序中,就是索引排序,就很快,只是需要查询对应的数据时,需要去到主键索引的行数据出取数据,整体性能还是有很大提升