mysql 事物与锁
来源:互联网 发布:wine for mac 编辑:程序博客网 时间:2024/06/05 05:51
人物
姜承尧
zabbix 监控工具
1. mysql 数据类型
锁 与 事务有关系吗
事务
原子性:事务中的操作要么全部成功,要么全部失败
一致性:数据库从一个一致状态转移到另一个一致状态
隔离性:在事务提交前,一个事务的通常另外一个事务不可见。READ UNCOMMITTED ,READ COMMITTED ,REPEATABLEREAD ,SERIALIZABLE
持久性:事务提交后,数据持久保存。
事务测试
1.打开四个客户端 连接
mysql -h localhost -u root -p
2.查看设置事务的隔离级别
查询当前会话的隔离级别
select @@tx_isolation;
设置客户端1的隔离级别为 读取未提交
set session transaction isolation level read uncommitted;
设置客户端3的隔离级别为 读取提交
set session transaction isolation level read committed;
设置客户端4的隔离级别为 可重复读
set session transaction isolation level repeatable read;
3.所有客户端 开启事务执行查询操作
start transaction ; // 或者 begin 开启事务
select * from blog where id =1 ;
4.客户端2 执行更新操作(还未提交)
update blog set title =‘未提交’ where id =1;
客户端1 ,3 ,4 再次进行查询操作
其中客户端1能够看到修改的数据,客户端3,4不能查询修改的数据。
5.客户端2提交事务 , 客户端1,3,4 再次查询
commit;
客户端1,3 都能看到修改的数据,客户端4查询的数据 看不到修改。
http://blog.csdn.net/fg2006/article/details/6937413
myisam 适合插入选择
6 查询增加锁
select ... lock in share mode;
select ... lock for update;
锁等待时间设置
set global innodb_lock_wait_timeout =2 ;
表的数据 更新 和 删除 会在数据上加锁,锁 增加在索引上,当更新条件不含有索引,则锁加在表上。
7.mysql 自动处理死锁,回滚一个事务,
事务 1
update blog set content ='2' where id ='1';
事务2
update blog set content = '1' where id ='2';
update blog set content ='2' where id ='2';
update blog set content = '1' where id ='1';
select sleep(1);
4.数据类型
4.1使用可满足范围的最小的数据类型,减少磁盘的读写
4.2 varchar 使用额外的字节记录数据的长度
4.3 只分配最小的可用空间
4.4使用无符号整数代理ip地址,inet_aton(),inet_NTOA()
4.5计数器表,update hit_count set cnt = cnt +1 where slot = RAND() *100; 避免更新同一列时串行。
- mysql 事物与锁
- mysql innodb引擎的锁与事物
- MySQL 锁、事物、MVCC
- Sqlite事物与锁
- Mysql的事物的特性与使用
- mysql数据库的事物与链接池
- mysql初级学习 引擎与事物
- Mysql事物
- mysql事物
- mysql事物
- mysql--事物
- mysql事物
- mysql事物
- mysql 事物
- sql server 事物与锁
- MySql的锁问题和事物
- mysql事物 并发问题,锁机制
- MySQL笔记(一):事物与Innodb存储引擎
- 9-10 DAIRY
- 在实验室台式上更新python库
- 第3章 SQL Server表
- python笔记--集合
- Linux下安装mysql
- mysql 事物与锁
- 51Nod
- Gradle学习系列之一——Gradle快速入门
- 块作用域
- C语言笔记1
- lUOGU P1540
- PHP小白之路3--PHP之购物车模块设计
- 第4章 SQL Server Transact-SQL编程
- 自考导图两张