1隔离级别,以及解决了哪些问题
1.读未提交。有脏读问题,读到一个回滚的数据 2.提交读 rc。有幻读问题 有不可重复读问题。
指的是 在rc的隔离级别下。。
a事务中修改的数据提交之后,b事务先后查询到的数据是不一样的,不可重复读 特指同一批数据集被修改,不包括插入 删除
3.可重复读 rr 有幻读问题 (某个范围内数据行变多或者变少) a事务中修改的数据,b事务中无法查询到,导致后续例如插入冲突,特指插入,删除数据会产生这方面问题 4.序列化。事务一个接一个串行执行 不允许并发操作
总结:幻读 是指数据的条数发生了变化,原本不存在的数据存在了,rr(可重复读)会存在这个问题 不可重复读是说数据的内容发生了变化,原本存在的数据内容发生了变化。rc(提交读)会存在这个问题
读未提交 脏读 不可重复读。幻读 rc 不允许脏读。允许不可重复读, 允许幻读
rr (可重复读) 不允许脏读。不允许不可重复读 允许幻读
序列号 不允许脏读。幻读。不可重复读
详细文档链接https://blog.csdn.net/song854601134/article/details/125147625
2.mysql事务commit 两阶段提交3.查询的逻辑4.innodb缓存结构数据。索引 锁信息 数据字典 自定义hash索引 插入缓存。日志缓存5.undo日志特别大的时候怎么回收6.mysql mgr组复制7.pg元组及事务年龄回卷原理8.vacuum 9.mysql集群模式有哪几种10.mysql mvcc rc及rr的实现 以及reade view原理11.mysql复制延迟原因大事务的操作大表ddl访问量太大根因是 slave是通过中继日志单进程回放sql如何解决:1.大事务拆分成多个小事务 2.采用5.7版本基于组提交的并行复制
3.mysql5.6版本基于库的并行复制。。适合于多个库。单库还是串行复制
4.slave升级配置,加快执行速度
5.innodb_trx_commit_flush 改成0 1秒持久话一次
6 sync_binlog 可以设置成20 20个事物写入到binlong 批量操作
12.mysql gtid复制13.缓存命中率低 怎么优化14.事务的4个特性
事务的四个特性分别是 原子 性 、 一致 性 、 隔离 性 和 持久 性 ,这四个特性通常被称为ACID特性。
-
原子性(Atomicity):原子性确保事务中的所有操作要么全部成功,要么全部失败并回滚到事务开始前的状态。这意味着事务中的操作是不可分割的,要么全部执行,要么都不执行。
-
一致性(Consistency):一致性要求事务在执行前后,数据库必须保持一致性状态。事务的执行不能破坏数据的完整性约束,如唯一性约束和外键约束等。这意味着事务的执行必须保持数据的正确性和一致性。
-
隔离性(Isolation):隔离性确保并发执行的事务之间相互隔离,互不干扰。即使多个事务同时访问同一数据,每个事务都感觉不到其他事务的存在,从而避免了数据的不一致性和脏读问题。
-
持久性(Durability):持久性意味着一旦事务提交,其对数据库的修改就是yongjiu性的,即使系统发生故障也不会丢失。数据库系统需要提供恢复机制来确保事务的持久性。
日常需要做的权限管理sql审核,(备注,下划线命名,业务规划(非核心业务隔离,防止影响生产),长度尽量精确,默认值不能null,删除全表用truncate 比 delete更好,大表注意锁表操作)排查冗余索引。不使用的索引。 表的碎片组织慢sql优化(索引,字符集,函数匹配,颗粒度)数据冷热隔离,数据备份,同步数据核心指标的可视化(空间大小,碎片 索引大小,溢出存储)年龄清理规划数据库实例,核心的 非核心的
