MySQL_day8

一、锁

工作中需要排查锁的争用等待以及死锁
隔离级别
影响数据的读取,默认级别RR
select @@tx_isolation 查看隔离级别
mysql 要求在同一窗口中 若没有修改,则数据不变
保证数据库的可重复度防止幻读

  • RU 读未提交,可脏读,一般不允许出现
  • RC 读已提交,可能出现幻读,可以防止脏读
  • RR 可重复读,功能是防止幻读现象,利用的是undo的快照技术+GAP(间隙锁)+nextlock(下键锁)
  • SR 可串行化,可以防止死锁,但并发事务性能较差

二、innoDB核心参数

双一标准:
这是一个安全参数,5.6以上版本默认开启,作用是控制着redo buffer 刷写策略

  • 1 每次提交事务,会立即刷写redo到磁盘
    (redo buffer --每次事务--os buffer---磁盘)
  • 0 事务提交时,不做日志写入操作,每秒写入,宕机时,丢失1秒数据
  • 2 每次事务提交引起写入文件系统缓存
    (redo buffer---每次事务--os buffer---每秒--磁盘)

innodb_flush_method=(o_DIRECT,fdatasyns)
作用是控制着redo buffer
安全模式
最大安全模式:
innodb_flush_log_at_trx_commit=1
innodb_flush_method=o_DIRECT
最大性能模式:
innodb_flush_log_at_trx_commit=0
innodb_flush_method=fsync
关于redo设置
innodb_log_buffer_size=128M 4G内存比例
存放事务的空间,可提高并发数
innodb_log_files_in_group=3-4组
innodb_buffer_pool 默认128M
一般调成物理内存的50-80% 系统中只有mysql的实例情况下
MySQL分支
Oracle: MySQL官方版
红帽:mariaDB
Percona:perconaDB

你可能感兴趣的:(MySQL_day8)