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';

  • 相关阅读:
    align 的用法
    layui 验证用法
    C# Post请求方法
    SQL 查询今天、昨天、7天内、30天的数据
    对Dijkstra名字发音的看法
    Ubuntu桌面图标消失且右键失效的解决办法
    Ubuntu下安装与配置Matlab
    ns 简单网络模拟
    JAVA包含第三方包的部署方法
    Ubuntu下配置ftp服务端
  • 原文地址:https://www.cnblogs.com/liqing1009/p/12937136.html
Copyright © 2011-2022 走看看