海外自建站动漫制作专业是什么?

摘要:海外自建站,动漫制作专业介绍,网站选项卡代码,招工网站怎么做文章目录 PostgreSQL 事务大家都知道的 ACID事务的基本使用保存点 PostgreSQL 并发并发问题MVCC PostgreSQL 锁机制表锁行锁 总结 Postgr
海外自建站,动漫制作专业介绍,网站选项卡代码,招工网站怎么做文章目录 PostgreSQL 事务大家都知道的 ACID事务的基本使用保存点 PostgreSQL 并发并发问题MVCC PostgreSQL 锁机制表锁行锁 总结 PostgreSQL 事务 大家都知道的 ACID 在日常操作中#xff0c;对于一组相关操作#xff0c;通常要求要么都成功#xff0c;要么都失败。在关系… 文章目录 PostgreSQL 事务大家都知道的 ACID事务的基本使用保存点 PostgreSQL 并发并发问题MVCC PostgreSQL 锁机制表锁行锁 总结 PostgreSQL 事务 大家都知道的 ACID 在日常操作中对于一组相关操作通常要求要么都成功要么都失败。在关系型数据库中称这一组操作为事务。为了保证整体事务的安全性有ACID这一说 原子性A事务是一个最小的执行单位一次事务中的操作要么都成功要么都失败。一致性C在事务完成时所有数据必须保持在一致的状态。事务完成后吗最终结果和预期结果是一致的隔离性I一次事务操作要么是其他事务操作前的状态要么是其他事务操作后的状态不存在中间状态。持久性D事务提交后数据会落到本地磁盘修改是永久性的。 PostgreSQL相比于其他数据库有一个比较大的优化DDL也可以包含在一个事务中。比如集群中的操作一个事务可以保证多个节点都构建出一个表才算成功。 事务的基本使用 PostgreSQL跟MySQL一样是自动提交事务的。 可以基于关闭PostgreSQL的自动提交事务来进行操作。 但是上述方式比较麻烦传统的方式。 也可以根据命令处理一个事务 begin开始事务commit提交事务rollback回滚事务 -- 开启事务 begin; -- 操作 insert into test values (7,bbb,12,5); -- 提交事务 commit;保存点 在PostgreSQL中保存点savepoint用于在事务中创建中间状态点允许在事务过程中设置临时的“检查点”以便在必要时回滚事务的一部分。 比如项目中有一个大事务操作超时回滚成本太高。针对大事务可以拆分成几个部分每个部分完成后构建一个保存点如果后面操作超时了回滚到保存点继续重试。 -- savepoint操作 -- 开启事务 begin; -- 插入一条数据 insert into test values (8,铃铛,55,11); -- 添加一个保存点 savepoint ok1; -- 再插入数据,比如出了一场 insert into test values (9,大唐官府,66,22); -- 回滚到之前的提交点 rollback to savepoint ok1; -- 就可以开始重试操作重试成功commit失败可以rollback; commit;PostgreSQL 并发 并发问题 在不考虑隔离性的前提下事务的并发可能会出现的问题 脏读读到了其他事务未提交的数据。必须避免这种情况不可重复读同一事务中多次查询同一数据结果不一致因为其他事务修改造成的。一些业务中这种不可重复读不是问题幻读同一事务中在修改某个数据后再次查询还是之前的数据因为其他事务对数据进行了更新这种现象为幻读。 针对这些并发问题关系型数据库有一些事务的隔离级别一般用4种。 READ UNCOMMITTED读未提交READ COMMITTED读已提交可以解决脏读PGSQL默认隔离级别REPEATABLE READ可重复读可以解决脏读和不可重复读MySQL默认是这个隔离级别PGSQL也提供了但是设置为可重复读效果还是串行化SERIALIZABLE串行化 PGSQL在老版本中只有两个隔离级别读已提交和串行化在PGSQL中不存在脏读问题。 MVCC PostgreSQL中在事务的并发问题里也是基于MVCC多版本并发控制去维护数据的一致性。详细内容见多版本并发控制MVCC 首先要清楚为啥要有MVCC 如果一个数据库频繁的进行读写操作为了保证安全采用锁的机制。但是如果采用锁机制如果一些事务在写数据另外一个事务就无法读数据会造成读写之间相互阻塞。 所以大多数的数据库都会采用一个机制 多版本并发控制 MVCC 来解决这个问题。 MVCC是一种并发控制的方法它通过保存数据的多个版本来实现并发访问。在MVCC中每个事务在开始时获取一个唯一的版本号然后读取和修改数据时都会带上这个版本号。这样每个事务只能看到自己的版本号小于或等于自己的数据版本从而实现了并发访问。 PGSQL中每张表都会自带两个字段 xmin给当前事务分配的数据版本。如果有其他事务做了写操作并且提交事务了就给xmin分配新的版本。
阅读全文