MYSQL 效能優化

2022-06-06 09:03:10 字數 855 閱讀 5575

mysql效能優化總結:

1.選擇合適的儲存引擎:innodb

除非你的資料表主要做唯讀或者全文索引,你應該預設選擇:innodb

2.資料表字段設計

a. 通常使用正規化化設計,因為正規化化通常會似的執行操作更快:

但我們有時需要混同正規化化和反正規化化,比如乙個更新頻率低的字段可以冗餘在表中,避免關聯查詢

b.單表字段不宜過多:建議最多30個以內

c.選擇小而簡單的合適資料型別,比如字串型別的,固定長度使用char,非定長度使用varchar,並分配合適且足夠的空間;需儲存ip欄位時選擇unsigned int等

d.盡量將列設定成not null

e.盡量使用整型做主鍵,應該盡量避免字串型別作為標識列,因為它們很消耗空間,並且通常比數字型別慢

f.欄位給定預設值,不設為null

g.業務表拆分, 分為業務基本表和業務擴充套件表

h.不使用觸發器

i.盡量避免使用游標,因為游標的效率較差

3.使用索引和索引的優化

一.使用索引為什麼快?

就好比書的目錄,想要找到某乙個內容,直接看目錄便可找到對應的頁

二.索引的儲存結構:b+tree和hash

一般選擇b+tree

三.索引的型別

按作用分類:

按資料儲存結構分類:聚簇索引和非聚簇索引

四.索引優化

避免索引失效:

4.sql優化

一.sql語句

二.使用explain分析sql查詢語句,選擇更好的索引和寫出更優化的查詢語句

三.開啟慢日誌,定期檢視慢查詢日誌記錄,定位慢查詢的sql,進而優化**

5.架構優化

6.配置優化

mysql效能優化 mysql效能優化

優化方式 1.空間換時間 冗餘 2.時間換空間 字段優先使用型別 int date char varchar text 索引型別 btree索引 hash索引 索引的葉子下,存放乙個資訊指向所在行的資料位址。btree有利於範圍查詢,hash有利於精確查詢。btree用的更多一些。btree索引的常...

mysql的效能優化 mysql效能優化

檢視安裝指令碼 select version 非互動式超時時間,如jdbc show global variables like wait timeout 互動式超時時間,如資料庫工具 show global variables like interactive timeout show sessi...

mysql 效能優化 命令 mysql效能優化

發現問題 當發現程式執行比較慢的時候,首先排除物力資源問題之後,就將注意力轉向mysq資料庫 1 首先確定執行慢的sql語句 mysql show full processlist 2 確認低效的查詢 多次執行第一步發現time耗費大的sql語句。檢視耗費的時間。3 分析效能 為sql生成乙個執行計...