提高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函数即可

发布了74 篇原创文章 · 获赞 40 · 访问量 19万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章