left join on where 區別 http://blog.csdn.net/xingfeng0501/article/details/7816703html
on用於鏈接,造成中間表,where用於篩選mysql
select from t1,t2 wheresql
select from t1 join t2 on... where優化
1) 定義主鍵的數據列必定要創建索引。.net
2) 定義有外鍵的數據列必定要創建索引。orm
3) 對於常常查詢的數據列最好創建索引。htm
4) 對於須要在指定範圍內的快速或頻繁查詢的數據列;blog
5) 常常用在WHERE子句中的數據列。排序
6) 常常出如今關鍵字order by、group by、distinct後面的字段,創建索引。若是創建的是複合索引,索引的字段順序要和這些關鍵字後面的字段順序一致,不然索引不會被使用。索引
7) 對於那些查詢中不多涉及的列,重複值比較多的列不要創建索引。
8) 對於定義爲text、image和bit的數據類型的列不要創建索引。
9) 對於常常存取的列避免創建索引
9) 限制表上的索引數目。對一個存在大量更新操做的表,所建索引的數目通常不要超過3個,最多不要超過5個。索引雖然說提升了訪問速度,但太多索引會影響數據的更新操做。
10) 對複合索引,按照字段在查詢條件中出現的頻度創建索引。在複合索引中,記錄首先按照第一個字段排序。對於在第一個字段上取值相同的記錄,系統再按照第二個字段的取值排序,以此類推。所以只有複合索引的第一個字段出如今查詢條件中,該索引纔可能被使用,所以將應用頻度高的字段,放置在複合索引的前面,會使系統最大可能地使用此索引,發揮索引的做用。
全表掃描 索引掃描 explain http://www.veryhuo.com/a/view/11198.html
http://blog.sina.com.cn/s/blog_b0afcd800101azbb.html
sql join and performance http://www.cnblogs.com/BeginMan/p/3754322.html
查詢優化 http://www.cnblogs.com/w2154/tag/mysql/
select for update http://www.cnblogs.com/davidwang456/archive/2013/08/20/3270101.html