Mysql 常用sql语句优化

1.并发性的sql语句
少用或者不用多表操作,如业务需要多表查询可以先查询一个表的数据,获取到后遍历再次查询其他表,也就是把一个join查询的语句分成2个或多个单表查询的语句。
2提高查询缓存的利用率
如果查询很原子(很小),就会增加查询缓存的利用率,比如做一个业务需要一个两表联查的sql语句(表1和表2),我们把这个两表联查sql语句分成先查表1数据再遍历循环查询表2,,这样就会生成2个查询缓存(表1和表2),这样如果其他业务也需要查询表1数据就可以直接从查询缓存中读取了。
分页limit优化
当我们使用limit分页是语句是这样的 limit N,M ,N是从第几条数据开始,M是取几条,假设我们的语句是 limit 10000 ,10意思是从第一万条数据开始取10条数据,那么数据库会先查询一万条然后再取10条数据出来,同理当这个N值越大我们的sql语句的执行时间也就越久,因为在执行分页时会有很多的无用检索。

我们把每页的最大值记录在lastVisitTime字段中,那么后边页的查询就可以用如下语句实现:

Sql代码

SELECT msg_id, msg_content FROM message  
WHERE gmt_create < #lastVisitTime#  
ORDER BY gmt_create desc  
LIMIT 20;  

这种查询方式,无论你查询多少页,分页都不会是影响效率的因素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值