提高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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章