MySQL-常用的运维命令

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. 默认的最大连接数是多少呢?
默认连接数.png
4.查看系统参数

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html

5.查询缓存设置

show variables like 'query_cache%';

缓存配置.png

通过 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(可以修改)
作用:
保证了内存数据的安全性,延缓了刷盘时间,提高了吞吐量。

  1. 为InnoDB提供了崩溃恢复的特性,实现持久性。
  2. redo log 记录的是 ‘在某个数据页上做了什么修改’。属于物理日志。
  3. 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语句(因为记录的是操作而不是数据,属于逻辑日志),可以用来做主从同步和数据恢复。

你可能感兴趣的:(MySQL-常用的运维命令)