總的來說:
www.cppcns.com
設計表的時候:
索引:總結:使用合適的資料型別,選擇合適的索引
sql的編寫需要注意優化:
使用limit對查詢結果的記錄進行限定
避免select *,將需要查詢的字段列出來
使用連線(join)來代替子查詢
拆分大的delete或insert語句
可通過開啟慢查詢日誌來找出較慢的sql
不做列運算:select id where age + 1 = 10,任何對列的操作都將導致表掃瞄,它包括程式設計客棧資料庫教程函式、計算表示式等等,查詢時要盡可能將操作移至等號右邊
sql語句盡可能簡單:一條sql只能在乙個cpu運算;大語句拆小語句,減少鎖時間;一條大sql可以堵死整個庫
or改寫成in:or的效率是n級別,in的效率是log(n)級別,in的個數建議控制在200以內
不用函式和觸發器,在應用程式實現
避免%***式查詢
少用join
使用同型別進行比較,比如用'123'和'123'比,123和123比
盡量避免在where子句中使用!=或<>操作符,否則將引擎放棄adpbvy使用索引而進行全表掃瞄
對於連續數值,使用between不用in:select id from t where num between 1 and 5
列表資料不要拿全表,要使用limit來分頁,每頁數量也不要太大
引擎:myisam
不支援行鎖,讀取時對需要讀到的所有表加鎖,寫入時則對錶加排它鎖
不支援事務
不支援外來鍵
不支援崩潰後的安全恢復
在表有讀取查詢的同時,支援往表中插入新紀錄
支援blob和text的前500個字元索引,支援全文索引
支援延遲更新索引,極大提公升寫入效能
對於不會進行修改的表,支援壓縮表,極大減少磁碟空間占用
innodb
支援行鎖,採用mvcc來支援高併發
支援事務
支援外來鍵
支援崩潰後的安全恢復
不支援全文索引
總體來講,myisam適合select密集型的表,而innodb適合insert和update密集型的表
分割槽、分表、分庫(讀寫分離)
本文位址: /shujuku/mysql/256289.html
mysql 優化策略 mysql的優化策略有哪些
第一 優化你的sql和索引 1.善用explain,看看自己寫的sql到底要涉及到多少表,多少行,使用了那些索引,根據這些資訊適當的建立索引 2.善用不同的儲存引擎,mysql有多種不同的儲存引擎,innodb,aria,memory根據需要給不同的表選擇不同的儲存引擎,比如要支援transacti...
Mysql的優化策略
避免使用null值判斷 一般來說,使用null值判斷時,一般都是全表檢索,但是有例外,覆蓋索引時索引會生效。盡量使用索引 在where條件列或者order by 等涉及的列上加上索引,能夠有效地避免全表掃瞄,縮小查詢範圍,加快資料檢索的速度。最佳左字首原則 出現聯合索引時,必須聯合索引中的第乙個字段...
mysql查詢優化策略
優化查詢 使用explain語句分析查詢語句 explain 用來分析 select 查詢語句,開發人員可以通過分析 explain 結果來優化查詢語句。通過對查詢語句的分析,可以了解查詢語句的執 況,找出查詢語句執行的瓶頸,從而優化查詢語句.使用索引查詢 mysql中提高效能的乙個最有效的方式就是...