a undo log
c a、i、d来一起保证
i 锁
d redo log
redo log 固定大小有checkpoint和write指针
bin log 和redo log区别
redo log 是innodb独有的 binlog是所有引擎都有的
redo log是物理日志,记录的是在某个数据页上做了什么修改,binlog是逻辑日志
redolog是循环写的,binlog是追加写的,不会覆盖以前的。
binlog因为是顺序写因此效率高,kafaka之所以效率高,是因为2点:顺序读写和0
拷贝
redolog需要擦除再能写
数据更新过程
获取数据(执行器)->内存没有从磁盘读取(innodb)->更改数据(执行器)->
写入新的数据(执行器)-数据更新到内存中(innodb)->写入redo
处于prepare阶段(innodb)-写binlog(执行器)-提交事务,处于commit状态(innodb)
连接
show processlist 查看连接状态
show variables like '%%'
max_connection 151*ng 每个g大概是151个连接 32g配了4096
back_log 超出连接后的可放在内存的请求 一般80个
wait_time 非交互式连接断开前等待时间如jdbc
interactive_timeout 交互式连接断开前等待时间如客户端连接
log日志模块
log_error 错误日志位置
log_bin 二进制文件的开启主从 可恢复数据库
binlog_do_db 指定要记录binlog的数据库
binlog_ignore_db 指定不要记录binlog的数据库
sync_binlog 一般为1
general_log 是否开启查询日志
general_log_file 查询日志文件名
show_query_log 是否开启慢查询日志记录
show_query_log_file
long_query_time 设置慢查询的时间
ad_hoc 即席查询 数据仓库 olap/oltp
log_slow_admin_statements 是否将管理语句写入慢查询日志
cache
key_buffer_size 查询缓存的大小未来版本被删除 8m
query cache