1. 程式人生 > 實用技巧 >SQL優化

SQL優化

SQL優化

  sql執行效能低、執行時間長、等待時間長、SQL語句欠佳(連線查詢)、索引失效、伺服器引數設定。
(1.)SQL解析過程:
編寫過程:select distinct ... from ... join..on..where..group by...having...order
解析過程:from .. on.. join..where.. group by ..having... select dinstinct.. order
(2.)SQL優化,主要式優化索引
索引:相當於書的目錄,index幫助mysql高效的獲取資料結構,索引是資料結構(樹:B樹、Hash樹...)B樹:小的放左,大的放大。
索引的弊端:
   1.索引本身很大,可以存放在記憶體、硬碟(通常有硬碟)
   2.索引不是所有情況適用:a.少量資料  b.頻繁更新的欄位  c.很少使用的欄位
   3.索引會降低增刪改查的效率(增刪改  查)
優勢:
   1.提高查詢效率(降低IO使用率)
   2.降低CPU使用率(... order by age desc)
(3.)索引分類:
單值索引:單列,age;一個表可以多個單值索引,name
唯一索引:不能重複,id
複合索引:多個列構成的索引(相當於二級目錄(name,age))
(4.)建立索引:

create 索引型別 索引名 on 表(欄位)
單值:
create index dept_index on tb(dept);
唯一:
create unique index name_index on tb(name);
複合索引:
create index dept_name_index on tb(dept,name);