Innodb引擎筆記

原書:《mysql技術內幕:InnoDB引擎》

源碼:https://github.com/mysql/mysql-server/tree/8.0/storage/innobase

======================================================

查看mysql使用配置:mysql --help | grep cnf 以最後一個爲準

查看mysql數據文件目錄: show variables like '%datadir%';

查看log路徑:show variables like '%log_err%';

查看base路徑:show variables like '%dir%'; --datadir/basedir

查看binlog: mysqlbinlog /usr/local/var/mysql/binlog.000001

binlog有三種:STATMENT/ROW/MIXED

innodb存儲文件:.ibd

myisam存儲文件 .MYI, .MYD

redo log: ib_logfile0 ib_logfile1

=======================================================

表空間數據文件 /usr/local/var/mysql/ibdata1 存放了各個表的信息。如果啓用了innodb_file_per_table將會爲每個表生成一個表空間。但是每個表空間裏只存儲了索引、數據和插入緩衝,但是撤銷、系統事務、二次寫緩衝還是存在共享的表空間。

表數據文件: xxx.ibd 存放了數據,key等信息

show engines; <=> select * from information_schema.engines;查看mysql支持的引擎信息

delimiter |

create procedure recreate(num int) begin declare idx int default 1; truncate table inc; while idx <= num do insert into inc values(idx, now()); set idx = idx + 1; end while; end;|

delimiter ;

鎖:

select 也可以加鎖: 

select * from t where k < 3 for update; --對k小於3的行加上排它鎖;

select * from t where k < 3 lock in share mode; --對k<3的行加上共享鎖;

select * from information_schema.innodb_locks; --查看正在使用的鎖;

事務:

select * from information_schema.innodb_trx; --正在執行的事務

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章