mysql主要分兩層
sqllayer
storage layer 以表為儲存引擎
儲存引擎
資料結構都是b+樹
mysiam 非聚集 表鎖
innodb 聚集 行鎖/表鎖 .ibd
調優索引優點:提高檢索效率,降低排序成本
缺點:更新索引io 調整索引計算成本 儲存空間
建立索引的法則
頻繁的查詢的字段
重複性高的不適合建索引
更新頻繁的字段不適合
不會出現在where子句不適合
如果以選擇主鍵來看uuid 不如 自增int
聯合索引
從左第乙個開始匹配
所以要注意where子句字段順序
行鎖
優點:粒度小
缺點:容易死鎖-兩個事務操作兩個表的兩行,互相等待
間隙鎖:一批資料被鎖,基於索引
排它鎖:
共享鎖:
鎖優化
盡可能資料檢索通過索引完成
合理設計索引
儘量減少基於範圍的資料檢索過濾條件
控制事務大小
業務允許,使用較低的隔離級別
innodb 無索引自動為表鎖 有索引行鎖
表鎖
mysiam實現
優化
小結果集驅動大結果集–join
只取出自己需要的columns
使用最有效的過濾條件
盡可能避免複雜的join和子查詢
query execution plan 執行計畫
explain sql語句 檢視執行計畫
profiling 了解概念
字段長度較小的
mysql 調優 Mysql調優
表設計 1 禁止使用外來鍵 2 多表中的相同列,必須保證列定義一致 3 國內表預設使用innodb,表字符集預設使用gbk,國際預設使用utf8的表 4 表必須包含gmt create和gmt modified欄位,即表必須包含記錄建立時間和修改時間的字段 5 單錶一到兩年內資料量超過500w或資料...
mysql調優書籍 mysql調優從書寫sql開始
理論知識 mysql 的執行機制 mysql 的sql關鍵字執行順序 1 mysql 的優化方案有哪些?1 mysql 資料庫常見的優化手段分為三個層面 sql 和索引優化 資料庫結構優化 系統硬體優化等 前兩個可以通過日常的書寫sql來實現,養成好的習慣可以事半功倍。2 sql 和索引優化習慣準則...
mysql卡的調優思路 MySQL效能調優思路
1.mysql效能調優思路 如果一台伺服器出現長時間負載過高 週期性負載過大,或偶爾卡住如何來處理?是週期性的變化還是偶爾問題?是伺服器整體效能的問題,還是某單條語句的問題?具體到單條語句,這條語句是在等待上花的時間,還是查詢上花的時間?1.1.監測並觀察伺服器的狀態.觀察伺服器狀態,一般用如下2個...