mysql高階優化(2)

2021-10-10 05:44:41 字數 1137 閱讀 9091

explain 用來分析 select 查詢語句,開發人員可以通過分析 explain 結果來優化查詢語句。

比較重要的字段有:

最有效的方式是使用索引來覆蓋查詢。

乙個大查詢如果一次性執行的話,可能一次鎖住很多資料、佔滿整個事務日誌、耗盡系統資源、阻塞很多小的但重要的查詢。

將乙個大連線查詢分解成對每乙個表進行一次單錶查詢,然後在應用程式中進行關聯,這樣做的好處有:

是 mysql 預設的事務型儲存引擎,只有在需要它不支援的特性時,才考慮使用其它儲存引擎。

實現了四個標準的隔離級別,預設級別是可重複讀(repeatable read)。在可重複讀隔離級別下,通過多版本併發控制(mvcc)+ next-key locking 防止幻影讀。

主索引是聚簇索引,在索引中儲存了資料,從而避免直接讀取磁碟,因此對查詢效能有很大的提公升。

內部做了很多優化,包括從磁碟讀取資料時採用的可**性讀、能夠加快讀操作並且自動建立的自適應雜湊索引、能夠加速插入操作的插入緩衝區等。

設計簡單,資料以緊密格式儲存。對於唯讀資料,或者表比較小、可以容忍修復操作,則依然可以使用它。

提供了大量的特性,包括壓縮表、空間資料索引等。

不支援事務。

不支援行級鎖,只能對整張表加鎖,讀取時會對需要讀到的所有表加共享鎖,寫入時則對錶加排它鎖。但在表有讀取操作的同時,也可以往表中插入新的記錄,這被稱為併發插入(concurrent insert)。

可以手工或者自動執行檢查和修復操作,但是和事務恢復以及崩潰恢復不同,可能導致一些資料丟失,而且修復操作是非常慢的。

如果指定了 delay_key_write 選項,在每次修改執行完成時,不會立即將修改的索引資料寫入磁碟,而是會寫到記憶體中的鍵緩衝區,只有在清理鍵緩衝區或者關閉表的時候才會將對應的索引塊寫入磁碟。這種方式可以極大的提公升寫入效能,但是在資料庫或者主機崩潰時會造成索引損壞,需要執行修復操作。

MySQL高階 索引優化案例2

1 員工表的建表語句 create table emps id int primary key auto increment,name varchar 20 not null default comment 姓名 age int not null default 0 comment 年齡 pos v...

Mysql高階高階(sql優化)

目錄 一 mysql高階有哪些東西?1 mysql的架構 2 索引優化分析 3 查詢擷取分析 4 mysql鎖機制 5 主從複製 架構這裡我們主要說的是引擎 看你的mysql現在已提供什麼儲存引擎 看你的mysql當前預設的儲存引擎 show variables like storage engin...

mysql高階索引 Mysql高階 索引優化全解

是否會使用索引,是mysql的關鍵 1.sql效能下降原因查詢語句寫的不好,連線子查詢太多,沒有建索引等等 索引失效 關聯jion表過多 伺服器引數設定不合適2.索引優化 索引是什麼?索引就是一種排好序的查詢資料結構,常見模型有雜湊表 有序陣列 二叉搜尋樹 目前最常用的innodb引擎使用的模型是b...