在sql裡面有許多最佳化技巧,有時候能夠實現相同功能的兩段sql語句,查詢效能卻不相同,因此掌握一些高效率的sql程式碼還是有必要的。
一、查詢最佳化
1. 減少記錄集數,避免使用)lect *
# 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;
盡 8.
## 盡 8. 盡 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 ;