mysql查询效率学习笔记

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)

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值