1、mysql請求處理過程:
2、啟動選項與系統變數:(1)啟動選項:
(2)系統變數:
(3)常用引數:
3、字元編碼:(1)常用字符集:
(2)mysql請求過程中的編碼轉換:
(
1)innodb儲存引引擎磁碟與記憶體實現資料交換的最小單位是`資料頁`,大小為`16k`(2
)innodb中乙個行中的所有列(不包括隱藏列和記錄頭資訊)占用的位元組⻓度加起來不能超過65535個位元組`;即如果表中只有乙個變長字段`varchar
(m)`,則該字段所能容納的最大位元組數為65535,該列所能容納的最大字元數量為`65535
/字符集表示乙個字元最多需要的位元組數。
4、innodb記錄行格式((row_format
):redundant:
額外資訊(字段偏移量列表、記錄頭資訊) + 真實資料
注:在compact和reduntant行格式中,對於占用儲存空間非常大的列,在記錄的真實資料處只會儲存該列的一部分資料,把剩餘的資料 分散儲存在幾個其他的⻚中,然後記錄的真實資料處用20個位元組儲存指向這些⻚的位址(當然這20個位元組中還包括這些分散在其他⻚ 麵中的資料的占用的位元組數),從而可以找到剩餘資料所在的⻚
sql:
create table 表名(...) row_format = 行記錄格式
alter table 表名 row_format = 行記錄格式
5、innodb記錄頭資訊:
6、innodb資料頁結構:
7、b+樹索引:
8、b+樹索引的使用:
9、mysql資料目錄:
10、單錶訪問方法:
11、連線(join
):
12、mysql基於成本的優化:
13、子查詢優化:
mysql執行in子查詢時,會為子查詢結果集建立臨時表(
物化表),並為該表中的列建立索引(
資料較少時在記憶體中建立hash索引,資料量較大時在磁碟上建立b+樹索引);然後執行
物化轉連線,將in條件查詢轉為成本最低的內連線查詢【需要注意的是mysql內部對於子查詢轉連線查詢後可能出現多條重覆記錄的情況還應用了半查詢、重複值消除等手段對結果集去重】;
14、explain:
15、利用optimizer_trace
檢視查詢優化過程:
16、buffer pool:
17、事務:
18、事務隔離級別與mvcc:(3) 在在訪問某條記錄時,按照下邊的步驟判斷記錄的某個版本是否可⻅:
(4)
read committed和repeatable read隔離級別的的乙個非常大的區別就是它們生成readview的時機不同:
(5)
所謂的mvcc(multi-version concurrency control ,多版本併發控制)指的就是在使用readcommittd、repeatable read這兩種隔離級別的事務在執行普通的seelct操作時訪問記錄的版本鏈的過程,這樣子可以使不同事務的讀-寫、寫-讀操作併發執行,從而提公升系統效能。readcommittd、repeatable read這兩個隔離級別的乙個很大不同就是:生成readview的時機不同,read committd在每一次進行普通select操作前都會生成乙個readview,而repeatable read只在第一次進行普通select操作前生成乙個readview,之後的查詢操作都重複使用這個readview就好了。
19、鎖
innodb行鎖是通過給索引上的索引項加鎖來實現的,只有通過索引條件檢索資料,innodb才使用行級鎖,否則,innodb將使用表鎖
mysql學習筆記 51 mysql學習筆記
初學mysql時整理,隨時更新 資料操作 增 insert into 表名 字段列表 values 值列表 值列表 如果要插入的值列表包含所有字段並且順序一致,則可以省略字段列表。可同時插入多條資料記錄!replace 與 insert 完全一樣,可互換。insert into 表名 set 欄位名...
mysql學習筆記 51 Mysql 學習筆記
一.首先進入mysql mysql u root p新增使用者許可權設定 grant all privileges on to jerry localhost identified by aa1234567 只允許本機訪問 grant all privileges on to jerry 10.80...
mysql做筆記 mysql學習筆記
alter table 新增,修改,刪除表的列,約束等表的定義。檢視列 desc 表名 修改表名 alter table t book rename to bbb 新增列 alter table 表名 add column 列名 varchar 30 刪除列 alter table 表名 drop ...