如果正确的理解索引

Posted lin_sen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果正确的理解索引相关的知识,希望对你有一定的参考价值。

索引就是表,是的,把索引当一张表看待就好

当你写一条sql语句,from tbl时,你检索的不一定是tbl表,而是tbl表的集合,这个集合包括由若干个表组成

每个表都含有若干个字段,

有一个表含有所有字段,且拥有一个主键列(如果dba没有指定,系统也会创建这个列),这个表就是我们通常说的表.这里我叫他全列表.

其他表对应到我们说的索引.我们叫索引表,索引表包含一到多个列,每个索引表都隐含包括一个id列,作为外键,指向全列表的主键.

mysql中一个表一定有一个主键列.

当查询时,数据库引擎会根据where条件中包括的字段,决定是使用那些表,一个原则就是尽量少的加载数据到内存..

索引表只含有少量字段,自然是一个很好地选择.所以筛选条件如果被索引覆盖,则使用索引表就能高效的解决问题.

所有表都按一个特定的顺序存储(一般默认都是B树结构).索引表按列的顺序存储,全列表按主键顺序存储.因此范围查询如果和表的顺序一致,自然能提高查询性能.

这就是索引的左匹配原则.

以上是关于如果正确的理解索引的主要内容,如果未能解决你的问题,请参考以下文章

用简单的选择查询理解索引

数据库表添加索引对性能的影响

理解MySQL——索引与优化

理解MySQL——索引与优化

理解MySQL——索引与优化

理解MySQL——索引与优化(转)