limit 1000,20,此時mysql排序出前1020條記錄後僅僅需要返回第1001到1020條記錄,前1000條記錄都會被拋棄,查詢和排序的代價非常高。
在索引上完成排序分頁的操作,最後根據主鍵關聯回原表查詢所需要的其他列內容。
eg:原:select film_id,description from film order by title limit 50,5 新:select a.film_id,a.description from film a inner join (select film_id from film order by title limit 50,5)b on a.film_id =b.film_id
SQL常用優化
一 大量匯入資料 alter table tbl name disable keys loading the data alter table tbl name enable keys disable keys 和 enable keys 用來開啟或者關閉 myisam 表非唯一索引的更新。在匯入大...
常用的sql語句優化
常用的 sql語句優化 order by 任何在order by 語句的非索引項或者有計算表示式都將降低查詢速度。應盡量避免在 where 子句中使用 not 操作符 當oracle 遇到 not,他就會停止使用索引轉而執行全表掃瞄 不支援索引。可以改為 value or value 這種支援索引的...
sql常用的優化技巧
一,通過變數的方式來設定引數 好 stringsql select from people p where p.id 壞 stringsql select from people p where p.id id 資料庫的sql文解析和執行計畫會儲存在快取中,但是sql文只要有變化,就得重新解析。wh...