美文网首页
MySQL实用语句

MySQL实用语句

作者: 麦香小瑜儿 | 来源:发表于2019-02-16 15:43 被阅读0次

    1、查询表的当前被使用情况:show open tables where in_user >xxx; 例如表同一时间被不同会话加上读锁(lock tables xxx read),可以根据sql查出被锁的次数;

    事务相关

    • 查询InnoDB当前的事务
      SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX\G

    隔离级别

    • 查看当前会话的隔离级别
      select @@session.tx_isolation;

    • 设置当前会话的隔离级别
      set session transaction isolation level read uncommitted|read commited|repeatable read|SERIALIZABLE;

    锁相关

    • 查看InnoDB的行级锁状态
      show status like 'innodb_row_lock%‘

    • 查看InnoDB的状态,包括锁阻塞
      Show engine innodb status\G;

    • 查看InnoDB的当前的锁
      select * from information_schema.INNODB_LOCKS\G

    • 查看InnoDB的当前的锁等待
      select * from information_schema.INNODB_LOCK_WAITS\G

    诊断

    • 设置慢日志阀值
      set long_query_time={val};第一句,是将慢查询日志的阈值设置为 0,表示这个线程接下来的语句都会被记录入慢查询日志中;

    • 重新统计索引信息
      analyze table {table_name},统计信息不对,修正InnoDB重新统计索引的信息。

    数据备份

    • mysqldump
      当 mysqldump 使用参数–single-transaction的时候,导数据之前就会启动一个事务,来确保拿到一致性视图。而由于 MVCC 的支持,这个过程中数据是可以正常更新的(必须要在RR隔离级别)。

    相关文章

      网友评论

          本文标题:MySQL实用语句

          本文链接:https://www.haomeiwen.com/subject/tmzbeqtx.html