MySQL索引及查询优化

1. MySQL索引的原理

1.1 索引目的

索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的,如果我想找到m开头的单词呢?或者ze开头的单词呢?

1.2 索引原理

除了词典,生活中随处可见索引的例子,如火车站的车次表、图书的目录等。它们的原理都是一样的,通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是我们总是通过同一种查找方式来锁定数据。

每个数据表都有一个主键(如果没有主键......

Inner Join vs Where

现在有两种Sql:

Inner Join

select * from Table1 a

Inner join Table2 b

On a.index = b.index

Where

select * from Table1 a,Table2 b

where a.index = b.index

这两种SQL有什么区别,除了语法上的区别,结果上看也看不出区别来。其实这两种SQL的作用是一样的。我们先将这两个sql放到MySql上看看结果:

Explain select * from Table1 a

Inner join Table2 b

......