枫叶居

桃李春风一杯酒,江湖夜雨十年灯

0%

MySQL笔记

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
show variables like '%innodb_old_blocks_pct%'; -- 37%
show variables like '%innodb_buffer_pool_size%'; -- 显示InnoDB存储引擎BufferPool大小,134217728 = 128Mb
-- 热点数据
show variables like '%innodb_old_blocks_time%'; -- 1000ms, 位于midpoint处的数据在等待多长时间之后才会放入new热点数据。
show engine innodb status; -- 显示innodb引擎的状态
-- Modified db pages 指的是Flush list里面的DirtyPage
-- buffer pool hit rate
select pool_id, hit_rate, pages_made_young from `information_schema`.nnodb_buffer_pool_stats; --
select *from `information_schema`.innodb_buffer_page_lru; -- 查看innodb BufferPool中LRU list中具体Page信息。
select *from `information_schema`.innodb_buffer_page_lru where oldest_modification > 0; -- 查看DirtyPage
show variables like '%innodb_log_buffer_size%'; -- redo log buffer大小,默认为8MB,该缓冲区不需要太大,因为会被刷新至日志文件。

show variables like '%innodb_fast_shutdown%'; -- SharpCheckpoint在Database关闭时将所有DirtyPage Flush回Disk,这是默认的工作方式。
-- FuzzyCheckpoint 进行部分页的刷新
show engine innodb status;

show variables like 'datadir'; -- datadir代表数据库所在目录
show master status; -- 显示master节点信息
show variables like 'binlog_cache_size'; -- binlo_cache_size mysql会为每一个Session开启一个binlog_cache,默认为32kB大小。
show global status like 'binlog_cache%'; -- Binlog_cache_use -> 缓存使用次数,Binlog_cache_disk_use -> 磁盘使用次数。

show variables like 'sync_binlog'; -- 二进制日志并不是在每次写的时候同步到磁盘(用户可以理解为缓冲写),因此数据所在操作系统挂机时,可能会有一部分数据没有写入二进制文件
-- sync_binlog = [N],表示每写多少次就同步至磁盘sync_binlog = 1表示采用同步写磁盘的方式来写二进制日志。
show variables like 'innodb_support_xa'; -- 让mysql支持xa事务
show variables like 'binlog_format'; -- 指定binlog格式
set @@session.binlog_format = 'ROW'; -- 修改会话级别binlog_format
select @@session.binlog_format; -- ROW

show variables like 'socket'; -- mysqld监听的unix socket文件
show variables like 'pid_file'; -- mysqld的pid文件路径

show variables like 'innodb_data_file_path'; -- ibdata1:12M:autoextend 格式innodb_data_file_path=datafile_spec1[; datafile_spec2]...
show variables like 'innodb_file_per_table'; -- 为每个基于innodb存储引擎的表产生一个独立的表空间,命名规则为:

-- innodb默认ib_logfile0, ib_logfile1是重做日志(redo log file)
show variables like 'innodb_log_file_size'; -- innodb redo log file size默认为512GB
show variables like 'innodb_log_files_in_group'; -- redo log group日志文件数量
show variables like 'innodb_log_group_home_dir';
show variables like 'innodb_mirrored_log_groups';

show variables like 'innodb_flush_log_at_trx_commit'; -- 有效值为:0,1,2。0 - 当提交事务时,并不将事务的重做日志写入磁盘上的日志文件,而是等待主线程每秒的刷新。
-- 1 - 表示在执行commit时将重做日志缓冲同步写到磁盘,即伴有fsync的调用, 2 - 表示将重做日志写入磁盘,即写到文件系统的缓存中。

show variables like '%partition%';
show plugins;

-- mysql数据库支持以下几种类型的分区。range分区,list分区,hash分区,key分区。
-- range分区:行数据基于属于一个给定连续区间的列值被放入分区。
-- list
-- hash
-- key

-- innodb_file_pe_table
-- 表空间
-- ①数据②索引③插入缓冲Bitmap页

-- system ls /;
坚持原创技术分享,您的支持将鼓励我继续创作!