? ? ? ? 在sql里面有很多優化技巧,有時候能夠實現相同功能的兩段sql語句,查詢性能卻不相同,因此掌握一些高效的sql代碼還是很有必要的。
? ? ? 一、查詢優化
? ? ? ? ? 1. 減少記錄集行數,避免select *?
? ? ? ? ? 2. 使用exist代替in,例如:Select sno from stu where exist(select * from grand where sno=stu.sno)
? ? ? ? ? 3. 使用>=而不是>,添加等于后比較直接鎖定最小或最大值,只寫>, 則數據庫會逐行進行比較。
? ? ? ? ? 4. 使用索引,但不要在索引上進行計算,當遇到or時索引失效,使用union代替or
? ? ? ? ?5. 只查詢一條數據的時候使用limit 1這樣會使搜索到數據后繼續進行搜索
? ? ? ? ?6. 避免使用rand(),當查詢數據想要亂序的時候,可以先生成一個隨機數:?
???????????????????select?userName?from?user?limit?$rand,1;
? ? ? ? ?7. 查詢join要使用小的結果集驅動大的結果集
? ? ? ? ?8. 盡可能少使用子查詢,子查詢的過程會在內查詢中先建立臨時表,查詢完成后刪除臨時表
? ? ?二、 ?從建庫角度分析數據庫優化策略
? ? ? ? ?1.優化數據庫結構,將數據庫字段多的表水平劃分多個表
? ? ? ? ?2. ?數據插入前禁用索引后開啟:
?ALTER?TABLE?table_name?DISABLE?KEYS?; ??????????????????ALTER?TABLE?table_name?ENABLE?KEYS?;
? ? ? ? ?3. 使用批量插入語句:能使用LOAD DATA INFILE 語句就盡量使用,不能使用可以選擇:
ALTER?TABLE?table_name?ENABLE?KEYS?;
?以上就是MYSQL sql語句優化的詳解的內容,更多相關內容請關注PHP中文網(www.php.cn)!
?