提高mysql查询效率及一些使用技巧记录

使用inner join 内连接替代 in 查询
select * from A where A.id in (select B.aid from B where B.name = '123');

----------

select * from A inner join B on A.id = B.aid where B.name = '123';

之前项目中一直使用第一种写法,查询时间非常长,其中子句从B中获取aid的查询时间极短,因而问题出在主句的in查询中。百度了一下,有网友说是mysql的in查询内部机制有问题导致的查询效率很低,推荐使用inner join内连接查询,所以改进为上面第二种查询写法,查询时间极短、效率极高,因此记录下来,给遇到同样问题的朋友一个解决思路。


mysql日期查询格式化

假如表中一个字段time类型为TimeStamp类型,现在要根据一个字符串类型来进行查询比较,则可以使用如下格式化查询语句。

select * from tName where DATE_FORMAT(tName.time,'%Y-%m') = '2016-10';

得到最新日期的查询方法
select max(tName.time) from tName; 

其中time字段类型需要是日期类型,可以使用max函数取到最新的日期,同理最老的日期使用min函数即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值