mysql 命令收集

 https://www.jianshu.com/p/36b35f84ccde 总结profile

https://blog.csdn.net/and1kaney/article/details/51213979 包含字段的解释

show status:运行时状态

show variables:配置参数

查看表的创建SQL脚本:show CREATE table labm_apply_t;

查看当前默认存储引擎: show variables like '%storage_engine%';

查看所有存储引擎:show engines

查看锁表情况:show status like ‘Table%’;

Table_locks_immediate 指的是能够立即获得表级锁的次数
Table_locks_waited 指的是不能立即获取表级锁而需要等待的次数,如果数量大,说明锁等待多,有锁争用情况

查看是否有表锁:show OPEN TABLES where In_use > 0;

查看当前会话执行了那些语句(会话级别):show profiles 

查看具体哪个语句详情(会话级别): show profile for query id

查看进程:show processlist

如果存在相同的主键就更新否则插入:insert into lhh_test(id,name) values(6,'lhh') on DUPLICATE KEY update (name='lhh')

加行级锁(排它锁):select*from lhh_test where id=6 for update

加共享锁:select *from lhh_test where id= 6 lock in  share mode 

--------------------死锁有关

查看进程:show processlist

查看是否有表锁:show OPEN TABLES where In_use > 0;

查看当前的事务:SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

杀死进程id(就是上面命令的trx_mysql_thread_id列):kill  446

查看当前锁定的事务:SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

查看当前等锁的事务:SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

查看MySQL错误日志位置: show variables like 'log_error';

查看锁阻塞线程信息 :show engine innodb status

查看当前锁模式:show variables like 'innodb_autoinc_lock_mode';

查看锁隔离级别:show variables like 'tx_iso%';

在MySQL中innodbautoinclock_mode有3种配置模式:0、1、2,分别对应”传统模式”, “连续模式”, “交错模式”。

  1. 传统模式:也就是我们最上面的使用表锁。

  2. 连续模式:对于插入的时候可以确定行数的使用互斥量,对于不能确定行数的使用表锁的模式。

  3. 交错模式:所有的都使用互斥量,为什么叫交错模式呢,有可能在批量插入时自增值不是连续的,当然一般来说如果不看重自增值连续一般选择这个模式,性能是最好的。

posted @ 2020-10-29 17:10  dahuinihao  阅读(48)  评论(0编辑  收藏  举报