1 LEFT JOIN的使用
(1) 左连接,顺序是用户自己定义的,进行多表连接,需要注意先连接数据量大的表,再连接数据量小的表,效率比较高(如果用小表连接大表,小表的每一条记录都要通过on后条件去大表匹配,如果是大表关联小表,就是去小表匹配,速度差很多)
(2) 实际例子
# user 20条记录 patrol_plan 50000条记录
#执行:2s 加完索引 650ms左右
SELECT
*
FROM
sys_user u
LEFT JOIN bu_patrol_plan p ON p.patrol_man_id=u.id
#执行:650ms
SELECT
*
FROM
bu_patrol_plan p
LEFT JOIN sys_user u ON p.patrol_man_id=u.id
2 INNER JOIN 使用
(1) mysql会优化表的连接顺序,自动使用大表连接小表,和用户写的sql的连接顺序无关
(2) 能使用内连接,尽量使用内连接,不要使用外连接
3 联合查询
(1) 和INNER JOIN 效果一样
4 索引的创建
(1) 多表连接on后面的从表条件字段,where后面的从表条件字段
(2) 建立索引的字段值,如果整个关联条件只用到一个索引字段,那么字段值出现null不会索引失效,但是效率会比较低,如果出现两个索引字段,则会索引失效
(3)判断索引是否失效
1)sql语句前加explain 字段
2)