Mysql锁问题
程序员文章站
2022-04-24 07:54:46
mysql锁问题锁的概述Mysql锁MylSAM锁如何加表锁InnoDB锁问题锁的概述注意:数据库中所有关于锁的一些问题,都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的! 因此,对于Innodb存储引擎,必须先将自动提交功能关闭 set autocommit=0Mysql锁MylSAM锁MyISAM存储引擎只支持表锁,这也是MSQL开始几个版本中唯一支持的锁类型如何加表锁Myl...
锁的概述
注意:数据库中所有关于锁的一些问题,都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的!都是在事务中讨论的! 因此,对于Innodb存储引擎,必须先将自动提交功能关闭 set autocommit=0
Mysql锁
MylSAM锁
MyISAM存储引擎只支持表锁,这也是MSQL开始几个版本中唯一支持的锁类型
如何加表锁
MylSAM在执行查询语句( SELECT)前,会自动给涉及的所有表加读锁,在执行更新操作( UPDATE、 DELETE、 INSERT等)前,会自动给
涉及的表加写锁,这个过程并不需要用户干预,因此,用户一般不需要直接用 LOCK TABLE命令给MSAM表员式加锁
显示加表锁语法
加读锁
lock table table name read:
加写锁
lock table table name write i
522读锁案例
准备环境
--注意啊!!!建表的时候表名和字段名都不要加引号,要用英文封号;结尾
create database demo_001 default charset=utf8mb4;
use demo_001;
CREATE TABLE tb_book(
id INT (11) auto_increment,
name VARCHAR(50) DEFAULT NULL,
publish_time DATE DEFAULT NULL,
status CHAR(1) DEFAULT NULL,
PRIMARY KEY (id)
)ENGINE=myisam DEFAULT CHARSET=utf8;
INSERT INTo tb_book (id, name, publish_time, status) VALUES(NULL, 'javasE3A8','2088-08-01', '1');
INSERT INTO tb_book (id, name, publish_time, status) VALUES (NULL, 'solrsE', '2088-08-08','0');
CREATE TABLE tb_user (
id INT(11) auto_increment,
name VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=myisam DEFAULT CHARSET=utf8;
INSERT INTO tb_user(id, name) VALUES(NULL,'令狐冲');
INSERT INTO tb_user(id, name) VALUES(NULL,'田伯光');
共享的意思就是这个表加了读锁,这个读锁也共享给了其他的表,所以其他的表也能够读, 加了读锁,写的操作一概不能执行,自己也不能执行写的操作,更不要提其他的表了
排他锁,就是独自占有的意思,不会共享给其他人,自己一个人拥有,自己可以写操作,也可以读操作,其他的线程不会拥有这个写锁,所以就更不要提读了
InnoDB锁问题
create table test(
id int(11) ,
name varchar(16),
sex varchar (1)
)engine = innodb default charset=utf8;
insert into test values(1, '100','1');
insert into test values(3,'3','1');
insert into test values(4, '400','0');
insert into test values(5, '500','1');
insert into test values(6,'600' , '0' );
insert into test values(7, '700','0');
insert into test values(8,'800','1');
insert into test values(9, '900', '1');
insert into test values(1, '200','0');
create index idx_test_id on test(id);
create index idx_test_name on test(name);
当索引失效的时候,行锁就会变为表锁
本文地址:https://blog.csdn.net/qq_42350785/article/details/107624054
上一篇: 黑加仑什么季节成熟?如何挑选购买黑加仑?
推荐阅读
-
MySQL5.7完全卸载步骤详解
-
概述MySQL统计信息
-
mysql 5.7以上版本安装配置方法图文教程(mysql 5.7.12mysql 5.7.13mysql 5.7.14)
-
MySQL常见内存不足启动失败的完美解决方法
-
随机生成八位优惠码并保存至Mysql数据库
-
Mysql5.7中使用group concat函数数据被截断的问题完美解决方法
-
Mysql5.7.17 winx64.zip解压缩版安装配置图文教程
-
MySQL SQL语句分析与查询优化详解
-
Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)
-
个人所得税app常见的五大问题及解决方法介绍