mysql及事务隔离级别

目录

一 事务之间相互影响分为几种

二 mysql常见的储存引擎

三 死锁

四 查看使用的储存引擎

五 修改储存引擎

六 总结


一 事务之间相互影响分为几种

脏读:就是读取了没有提交的数据,

不可重复读 :前后多次读取内容不一致

幻读:两次读的结果不一样

丢失更新:后一个会覆盖前一个事务结果

mysql及事务隔离的级别

read uncommitted:读取尚未提交的数据,也就是读取的是脏读数据

read committed:提交读就是读取已经提交的数据,可以解决脏读,

repeatable read:可重复读,无论其他事务是否修改提交了数据,在这个事务中看到的数据始终不受其他事务的影响

serializable:串行化,可以解决脏读 但是每次读都会获得表级共享锁,读写相互受影响

二 mysql常见的储存引擎

1. mylsam 是表级锁定,读或者写无法同时进行

好处是:分开执行时,速度快,资源占用少

2.mylsam表支持三种不同的储存格式

静态固定表 char(10)  有固定的10个字节,优点储存非常迅速,容器缓存,故障之后容易恢复

动态表

varchar 记录不是固定长度的优点是占用空间少但是频繁的更新、删除记录会产生碎片,需要定期执行 OPTIMIZE TABLE 语句或 myisamchk -r 命令来改善性能,并且出现故障的时候恢复相对比较困难。

压缩表

压缩表由 myisamchk 工具创建,占据非常小的空间,因为每条记录都是被单独压缩的,所以只有非常小的访问开支

innodb特点

支持事务

默认的引擎级别是innodb 清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表(truncate)

三 死锁

MyISAM :表级锁定 开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;
innodb :行级锁定 开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高

怎么解决死锁

show

怎么选择储存的类型的

如果并发量大,什么并发量大,读写的并发量大,那我们建议使用innoDB 如果单独的写入或是插入单独的查询,那我们建议使用没有INNODB

四 查看使用的储存引擎

show table status from 库名 where name='表名'\G;

 方法二

show create table 表名;

五 修改储存引擎

alter table 表名 engine=MyISAM;

 方法二 改配置文件

vim /etc/my.cnf

 systemctl restart mysqld.service

三 创建表时可以指定引擎

create table 表名(字段1 数据类型,...) engine=MyISAM;

 

六 总结

MyISAM 和 INNODB区别(差异)

-InnoDB支持事物,而MylSAM不支持事物。
- lnnoDB支持行级锁,而MylSAM支持表级锁.
- InnoDB支持MVCC,而MlSAM不支持。
- lnnoDB支持外键。而MyISAM不支持。
- lnnoDB全文索引,而MylSAM支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值