1. 查看客户端连接数:
show global status like 'Thread%'
说明:因为MySQL 服务端采用的是单进程多线程模型,每产生一个回话(Session)就会有一个新线程处理。所以该命令即表示客户端连接数。
2. 由于线程资源宝贵,如果某一链接长时间没有任何操作,该线程是如何回收释放的呢?
-- 非交互式超时时间,如JDBC程序
show global variables like 'wait_timeout%';
'wait_timeout','86400'
-- 交互式超时时间,如数据工具 Navict
show global variables like 'interactive_timeout%';
'interactive_timeout','7200'
超过相应的超时时间 则链接断开。
3. 默认的最大连接数是多少呢?
4.查看系统参数
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
5.查询缓存设置
show variables like 'query_cache%';
通过 query_cache_type OFF 可以 查询缓存默认是关闭的(5.7默认关闭 ,并且8.0版本中已经移除)
6. 默认页大小:
page_size: 16
https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_page_size
7. 查看redo log 信息:
show variables like 'innodb_log%'
redo_log 固定大小为48M(可以修改)
作用:
保证了内存数据的安全性,延缓了刷盘时间,提高了吞吐量。
- 为InnoDB提供了崩溃恢复的特性,实现持久性。
- redo log 记录的是 ‘在某个数据页上做了什么修改’。属于物理日志。
- redo log 的大小是固定的,前面的内容会覆盖,一旦写满,就会触发 buffer pool 到磁盘的同步,以便腾出空间记录后面的修改。
8. 查看 undo log 信息
show global variables like '%undo%' 存放在系统表空间
undo log 作用:
记录事物发生之前的数据状态,发生异常时回滚,保证原子性。
9. 查看 bufferPol信息:
show global variables like '%innodb_buffer_pool%';
buffer pool 内存写满怎办?
buffer pool 有自己的LRU算法
https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool.html
10.查看更新缓冲区数据:
show global variables like '%innodb_change_buffer_max_size%';
innodb_change_buffer_max_size 25 (表示占整个缓冲区的25%)
11.redo log buffer
redo log 缓冲区
刷盘时机(频率):
show global variables like '%innodb_flush_log_at_trx_commit%';
0: 代表事物提交后每隔一秒刷新到redo log 文件
1: 代表事物提交后立即刷新到redo log 文件(默认)
2: 代表事物提交后立即刷新到操作系统缓冲区,然后操作系统每隔一秒刷新到redo log 文件。
12. 双写缓冲:
页的备份,防止页被破坏导致数据无法恢复。
13.bin log
所有引擎都有的日志文件
以事件的形式记录了所有的DDL和DML语句(因为记录的是操作而不是数据,属于逻辑日志),可以用来做主从同步和数据恢复。