1、不要在like模式的開始位置使用萬用字元。
不要出於習慣而將符號%放在字串的兩側。
如果只想找到出現在資料列開始位置的字串,就需要乙個%.假定你想找mac開始包含的名字。如macgre和macdel.就需要這樣:
where last_name like 'mac%';
優化程式看到後,會使用索引找到匹配的資料行,就好像下面的表示式,這種表示式允許對last_name使用索引:
where last_name >='mac' and last_name <'mad'
2、避免過多使用mysql的自動型別轉換
如:
select * from mytabl where age =4;
select * from mytabl where age='4';
上面兩條語句返回同樣的結果,不過第二條語句效率更低,因為需要型別轉換。而
且,如果age含有索引,那麼含有型別轉換的比較可能會阻止索引得到使用。
在什麼情況下索引不能使用呢?看:
select * from ytabl where `name` = '7';
如果name為varchar,則索引失效。因為name資料列裡可能會有很多不同的字串在轉換為數值後等於'7'.比如'7','7.0'.要想把它們都找出來,唯一的辦法就是依次讀取、轉換,再進行比較。
查詢優化(MySQL優化查詢)
關聯查詢太多join 設計缺陷或不得已的需求 資料庫伺服器調優及各個引數設定不適當 緩衝 執行緒數等 慢查詢日誌 找出執行速度慢的sql語句 慢查詢的開啟並捕獲 explain 慢sql分析 show profile查詢sql在mysql伺服器裡面的執行細節和生命週期情況 sql資料庫伺服器的引數調...
mysql統計查詢優化 Mysql查詢優化
效能涉及的層面很多,但是在操作層面,主要有表結構設計優化 索引優化和查詢優化 查詢的生命週期大致可以分為,從客戶端 到服務端 在伺服器上解析 生成執行計畫 執行 返回結果給客戶端 sql執行流程 具體優化技巧 1.消除外連線 2.消除子查詢 盡量用join代替子查詢,雖說mysql查詢優化器會進行優...
MySQL優化 查詢優化
在每乙個消耗大量時間的查詢中,都能看到一些不必要的額外操作 某些操作被額外地重複了很多次 某些操作執行得太慢等。優化查詢的目的就是減少和消除這些操作所花費的時間。查詢效能低下最基本的原因是訪問的資料太多。所以需要考慮是否向資料庫請求了不需要的資料 1 多表關聯時,或獲取單錶資料時,盡量避免不加思考地...