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生成乙個執行計...