MySQL 常用SQL優化(五)

2021-07-25 20:11:48 字數 1144 閱讀 1126

一、分頁優化查詢。

一般分頁查詢時,通過建立覆蓋索引能夠比較好地提高效能。乙個常見又非常頭疼的問題:「limit 10000,10」,此時mysql排序出10020條記錄後僅僅返回第10001到10020條記錄,前10000條記錄都會被拋棄,查詢和排序的代價非常高。

1、第一種優化思路。

在索引上完成排序分頁操作,最後根據主鍵關聯回原表查詢所需要的其他列內容。例如:對電影表film根據標題title排序後取得某一頁的資料,直接查詢的時候,可以從explain的輸出結果中看到優化器實際上做了全表掃瞄,效率不高。

而按照索引分頁後回表方式改寫sql後,從exlpain的輸出結果中已經看不到全表掃瞄了。

這種方式讓mysql掃瞄盡量少的頁面來提高分頁效率。

2、第二種優化思路。

把limit查詢轉換為某個位置的查詢,例如:假設每頁10條記錄,查詢支付表payment中按照租憑編號rental_id逆序排序的第42頁記錄,能夠看到執行計畫走了全表掃瞄。

那麼在翻頁到第42頁時,可以根據第41頁最後一條記錄向後追溯,相應的sql可以改為:

注意:這樣把limit m,n轉換為limit n的查詢,只適合在排序字段不會出現重複值的特定環境,能夠減輕分頁翻頁的壓力;如果排序字段出現大量重複值,仍然使用這樣的優化分頁,就會造成記錄丟失,不該使用這樣的方式優化分頁。

MySQL 常用SQL優化

mysql 常用sql優化 一.大批量插入資料 1.對於load myisam儲存引擎的表,可以通過關閉開啟myisam表非唯一索引的更新來提公升匯入速度 例 mysql alter table tbl name disable keys mysql load data infile home my...

MySQL優化(一)常用SQL優化

一 新增 二 刪除 delete from 刪除語句加where條件,如果是刪除全部記錄,使用truncate table 表名,而不使用delete語句。三 修改 四 查詢 索引這裡就不重複了,一般在建表時對常用的查詢欄位就應該加上索引。1 單錶查詢 首先盡量只查詢單錶,可以分解成多次單錶查詢的盡...

mysql 常用sql語句優化原則

優化索引mysql 中用到索引的的場景 索引的使用原則 符合左字首原則 索引上不要使用函式和進行運算,另外型別也要對應 比如 where name abc 雖然sql不會報錯,但是會導致索引失效 使用 or 時,如果存在沒有在索引上的列,也會導致索引失效 如果 mysql 分析使用索引必沒有使用索引...