Mysql優化策略(推薦)

2022-09-25 07:54:11 字數 1159 閱讀 6383

總的來說:

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中提高效能的乙個最有效的方式就是...