Mysql查詢語句的效能優化

2021-09-12 08:04:37 字數 648 閱讀 2634

使用join時,應當用小結果集驅動大結果集

例: user表10000條資料,class表20條資料

select * from user u left join class c u.userid=c.userid

這樣則需要用user表迴圈10000次才能查詢出來,而如果用class表驅動user表則只需要迴圈20次就能查詢出來

例:select * from class c left join user u c.userid=u.userid

limit 的基數比較大時使用 between

原來語句:select * from admin order by admin_id limit 100000,10

優化為: select * from admin where admin_id between 100000 admin 100010 order by admin_id

盡量避免在列上做運算,這樣導致索引失效

例如:select * from admin where year(admin_time)>2014

優化為: select * from admin where admin_time> '2014-01-01

mysql查詢效能優化 MySQL 查詢效能優化

在日常開發中,程式設計師寫的最多的除了bug之外,應該算是sql語句了。sql的質量影響了程式的響應速度,只有利用mysql的特性,才能讓mysql更有效的執行查詢sql,充分發揮mysql的優勢,並避開它的弱點。為什麼查詢速度會慢?在編寫sql之前,需要清楚一點 真正重要的是響應時間。如果我們把查...

MySQL裡幾個查詢語句的效能優化論證

前幾天在網上看了乙個帖子,描述的現象是在mysql中,對in,or,union all的效能的比對,看完之後,我就產生了疑問。文章的大意是說,使用in,or的查詢效率較低,大概查詢需要花費11秒,而使用了union all的方式之後,效能提高到了0.02秒。如果單純說是mysql半連線的優化器效能問...

mysql 查詢效能優化

mysql 執行查詢,客戶端向 mysql 傳送請求的時候,mysql 伺服器執行一系列過程,保證查詢語句在 mysql 中得到最高效能的效率。客戶端傳送一條查詢給伺服器 2 伺服器先檢查查詢快取,如果命中了快取,則返回儲存在快取中的結果。否則,進入下乙個階段。3 伺服器進行 sql解析 預處理,再...