zoukankan      html  css  js  c++  java
  • Mysql的锁表,锁行记录

    查看正在被锁定的的表

    show OPEN TABLES where In_use > 0;

    in_use:多少个线程在使用

    name_locked:是否被锁

    查询哪些线程正在运行

    show processlist;

    最关键的就是state列

    查看正在锁的事务

    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

    查看等待锁的事务

    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;


    在事务当中,Tansaction isolation level 为REPEATABLE READ(可重读)情况,锁的操作

    mysql> select k from t where id=1 lock in share mode; #乐观锁(s锁,共享锁),可读

    mysql> select k from t where id=1 for update; #悲观锁,排他锁

    悲观锁:在读取数据时锁住那几行,其他对这几行的更新需要等到悲观锁结束时才能继续 。

    乐观所:读取数据时不锁,更新时检查是否数据已经被更新过,如果是则取消当前更新,一般在悲观锁的等待时间过长而不能接受时我们才会选择乐观锁。

    注:for update 仅适用于InnoDB,并且必须开启事务,在begin与commit之间才生效。

    查Mysql服务器上的版本

    mysql> select version();

    查看表的引擎

    mysql> show create table t;

    或者

    mysql> show table status from 库名 where name='t' G

    查mysql当前默认的存储引擎:

    mysql> show variables like '%storage_engine%';


    查整个MySQL实例里面存储引擎为MyISAM的表

    mysql> select table_catalog

    ,table_schema

    ,table_name

    ,engine

    from information_schema.tables

    where engine='MyISAM';

    查询MyDB数据库里面存储引擎为MyISAM的表

    mysql> select table_catalog

    ,table_schema

    ,table_name

    ,engine

    from information_schema.tables

    where table_schema='MyDB' and engine='MyISAM';

  • 相关阅读:
    poj1661【DP,左右两端dp】
    hdoj1074【A的无比爆炸】
    hdoj1024【DP.最 大 m 字 段 和】(写完我都怕。。。不忍直视。。)
    qq教xixi写模拟加法【非常爆炸】
    错排公式
    POJ3616【基础DP】
    hdoj1257【疑问】(贪心)
    【弱的C艹之路。。未完待续】
    hdoj1728【搜索的两种写法】
    hdoj1001【智障了。。。】
  • 原文地址:https://www.cnblogs.com/liqing1009/p/12937136.html
Copyright © 2011-2022 走看看