mysql中主键索引和非主键索引的区别


在mysql中最常用到索引,索引又分为主键索引和非主键索引,主键索引和非主键索引都能起到加快查询速度的作用,但在查询速度上,主键索引要快于非主键索引,这是为什么呢? 查看下图

http://webfile.bigbiy.com/V8JFlgfOHQKn3jo.png

图中左边表示主键索引,右边表示非主键索引,图中的R1,R2等都表示整行的数据内容。从图中可以看出,主键索引保存的都是整行的数据内容,而非主键索引则保存的都是所在行的行id。 这也就是说,当查询时,以主键索引查询,会直接返回主键索引对应的整行数据;而以非主键索引查询时,会先返回当前索引对应的行id,然后根据行id去查询对应的整行数据。 所以以主键索引当查询条件会比比非主键索引当查询条件快。最后无论是主键索引还是非主键索引,查询速度都会比用普通字段快。