mysql可以分享的技術 技術分享 MySQL

2021-10-17 17:41:42 字數 2737 閱讀 5640

1、查詢語句是如何執行的?

1、連線

1、建立連線

2、驗證許可權,修改了許可權,建立新的連線才會生效。

3、sql執行的臨時記憶體

2、查詢快取

1、先查詢快取,更新操作會導致所有快取失效。

2、mysql 8.0功能去掉

3、分析

詞法解析,語法解析

4、優化

1、決定使用哪個索引,比方說根據統計資訊預估掃瞄行數,是否使用臨時表,需不需要排序等。

2、決定join的各個表的連線順序

5、執行

1、呼叫引擎介面,查詢到第一條符合條件的資料,然後依次查詢,返回結果。

更新是如何執行的?

1、日誌先行,redo log 和 undo log

2、binlog

3、兩階段提交

事務隔離&多版本控制

1、4種隔離級別

2、可重複讀的實現原理,一致性檢視

3、例子

注意:不帶索引的更新,會公升級為表鎖!

create table `t1` (

`id` int(11) unsigned not null auto_increment,

`city` varchar(16) not null,

`name` varchar(16) not null,

`age` int(11) not null,

`ext` varchar(10) not null default '',

primary key (`id`),

key `city` (`city`,`name`,`age`) using btree

) engine=innodb auto_increment=9001 default charset=utf8

事務1,更新了一條資料,where不帶索引。

start transaction with consistent snapshot;

update t1 set name = 'test2' where ext = 'test';

事務2,普通查詢可以,for update查詢被阻塞。

select * from t1 where id=4002;

select city,name,age from t1 where id=4002 for update;

4、讀提交和rr的區別

索引結構

1、b+樹

2、主鍵索引和普通索引的區別

排序原理

1、全欄位排序(sort_buffer,引數:sort_buffer_size)

2、rowid排序(引數:max_length_for_sort_data)

3、例子:

create table `t1` (

`id` int(11) not null,

`city` varchar(16) not null,

`name` varchar(16) not null,

`age` int(11) not null,

primary key (`id`),

key `city` (`city`)

) engine=innodb default charset=utf8

select city,name,age from t1 where city='北京' order by name limit 1000;

表中有4000條北京的資料,1000條上海的資料。

1、using filesort表示會使用排序。

2、通過以下語句檢視是否使用了檔案排序,檔案排序一般是歸併排序。

number_of_tmp_files,代表了使用了幾個臨時檔案。

3、轉rowid排序

使用rowid了排序,這個時候沒有使用檔案排序,使用臨時檔案個數為0;

4、增加覆蓋索引,就不會再排序了,因為索引預設是有順序的。

技術分享 MySQL 碎片問題

mysql 的碎片是 mysql 運維過程中比較常見的問題,碎片的存在十分影響資料庫的效能,本文將對 mysql 碎片進行一次講解。mysql 的碎片是否產生,通過檢視 show table status from table name g 這個命令中 data free 字段,如果該欄位不為 0,...

技術分享和技術部落格

上篇內容聊了一些技術社群相關的事情,本篇聊聊內外部技術分享 技術部落格相關的事情。提到技術分享,乙個繞不開的話題是為什麼要做技術分享?你可能會得到許多不同的略帶功利的答案,也可能會看到最樸素的 紮實自己技術的過程中幫助有相同需求的其他人。不論哪種動機,技術分享對於行業 公司 團隊 個人都是好的事情。...

Android技術分享

android開發必看知識,不看後悔 打包為大家奉上最實用最給力的資源,不看你絕對後悔。最強大的ui特效 奇藝高畫質ui 介面源 搜尋關鍵字飛入飛出效果 水波紋效果,附工程原始碼 效果很好很逼真 特效!超牛x launcher特效 仿360 一鍵優化動畫效果 功能強大的拼圖人生原始碼 最火爆的精品例...