MySQL原理調優

2021-10-05 18:33:15 字數 920 閱讀 9739

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個...