当前位置: 首页 > news >正文

万网主体新增网站备案需要是滴么太原做网站页面的

万网主体新增网站备案需要是滴么,太原做网站页面的,西安在线网站,wordpress标签页固定链接前言#xff1a; postgresql数据库是比较复杂的一个关系型数据库#xff0c;而有些时候#xff0c;即使是简单的插入更新操作也是有很多复杂的机制。 那么#xff0c;什么是冲突#xff1f;什么时候会遇到冲突#xff08;也就是冲突的常见场景#xff09;#xff1f;…前言 postgresql数据库是比较复杂的一个关系型数据库而有些时候即使是简单的插入更新操作也是有很多复杂的机制。 那么什么是冲突什么时候会遇到冲突也就是冲突的常见场景如果有冲突我们应该怎么去解决这些问题我想应该是在此文章中详细说明的。 一 什么是冲突 复杂点的说法数据库的冲突主要是指并发事务对同一数据的读写操作和写写操作。例如当多个用户同时尝试修改同一行数据时可能会发生冲突。这种冲突可能会导致数据不一致或数据损坏。 解决这种并发冲突的方法有多种。其中一种是通过锁定整个行数据或整个表数据来防止并发错误这分别被称为行锁和表锁。行锁的开销小加锁快但出现死锁的概率较高表锁的锁定力度大发生锁冲突的概率较低但会导致并发度最低。 另外乐观并发控制是另一种解决冲突的方法它假设并发冲突相对较少。与悲观方法预先锁定数据然后再进行修改相反乐观并发不会进行锁定但如果数据自查询后发生更改则会安排数据修改在保存时失败。此并发失败会报告给应用程序应用程序会进行相应处理例如可能会对新数据重试整个操作。这些也就是面试DBA的时候常说的悲观锁乐观锁这些 简单来说就 假设有一个名为employees的表其中包含以下列id、name、age和salary。现在有两个并发事务它们都试图更新同一个员工的薪水。 事务1 BEGIN; UPDATE employees SET salary 5000 WHERE id 1; COMMIT; 事务2 BEGIN; UPDATE employees SET salary 6000 WHERE id 1; COMMIT; 在这个例子中事务1将员工的薪水从4000更新为5000而事务2也将员工的薪水从4000更新为6000。由于这两个操作是并发执行的因此最终的结果将是员工的薪水被更新为6000而不是预期的5000。这就是一个典型的PostgreSQL冲突示例。 我们在使用SQLinsert语句进行插入 操作 而目标表中存在这些数据将会导致这些insert 的SQL语句失败 这个时候我们就可以说有冲突现象发生了。 例如 二 冲突在什么时候出现 很简单多用户同一时间执行同一个插入的SQL语句的时候还一种情形是增量迁移增量同步数据的时候第二种情形应该是比较常见的。 三 冲突的解决 悲观锁Pessimistic Locking悲观锁是一种并发控制策略它假设多个事务在没有冲突的情况下同时执行的可能性很小因此在每个事务开始时就会锁定数据行或表直到事务完成并释放锁。这种机制可以有效地避免冲突但会导致并发性能下降。 乐观锁Optimistic Locking乐观锁是一种并发控制策略它假设多个事务在没有冲突的情况下同时执行的可能性很大只有在提交时才会检查是否存在冲突。如果存在冲突则事务会被回滚并重新尝试。这种机制可以提高并发性能但需要额外的逻辑来处理冲突。 时间戳Timestamping时间戳是一种简单的并发控制策略它在每个记录中添加一个时间戳字段用于记录该记录的最后修改时间。当更新记录时比较当前时间戳和记录中的时间戳是否一致如果不一致则说明有其他事务已经修改了该记录需要重新执行更新操作。 分布式锁Distributed Locking分布式锁是一种在分布式系统中解决并发冲突的机制它可以确保只有一个节点能够访问共享资源。常见的实现方式包括基于Redis、Zookeeper等中间件实现的分布式锁。 重试机制Retry Mechanism重试机制是一种常见的解决冲突的方法当某个操作失败时会进行多次重试直到成功为止。这种方法适用于一些非关键性操作但对于关键性操作可能会导致数据不一致等问题。 忽视冲突  适用于上面第二节说的增量更新同步迁移数据库的操作 示例1 忽视冲突 例如两张表之间的同步虽然形式上是全表同步但希望实现的效果是增量同步此时我们需要在INSERT语句后面添加冲突指示on conflict DO NOTHING; 这样有相同的数据时检查到了冲突忽略掉此条数据插入保持原有数据不变。 INSERT INTO 表1名 SELECT * FROM 表2名 on conflict DO NOTHING; 示例2 冲突后update更新部分冲突更新 ---表示在向名为table_name的表中插入一条数据 ---其中包含两个字段column1和column2。 ---如果表中已经存在具有相同column1值的记录 ---则将该记录的column2字段更新为新插入记录的column2值。INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON CONFLICT (column1) DO UPDATE SET column2 EXCLUDED.column2;示例3 冲突后根据条件更新字段 INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON CONFLICT (column1) DO UPDATE SET column2 EXCLUDED.column2 WHERE column2 EXCLUDED.column2;示例4 DO NOTHING RETURNING在发生冲突时不执行任何操作若不冲突返回插入的行。 INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON CONFLICT (column1) DO NOTHING RETURNING *;示例5 DO UPDATE SET ... WHERE ... RETURNING在发生冲突时执行更新操作并根据条件进行更新并返回更新的行  INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON CONFLICT (column1) DO UPDATE SET column2 EXCLUDED.column2 WHERE column2 EXCLUDED.column2 RETURNING *;未完待续
http://www.dnsts.com.cn/news/179425.html

相关文章:

  • 企业网站建设与推广范文中企动力网站合同
  • 帝国小说网站模板自己做网站要买域名吗
  • 上海设计招聘网站长春网站建设首选网诚传媒
  • 网络营销网站建设我和你99谁做的网站
  • 免费申请一个网站产品研发
  • 做pc端网站讯息wordpress post提交表单
  • 深圳市专业制作网站公司吗推广普通话作文300字
  • wordpress建站教程视频阿里云是做网站的吗
  • 企业网站制作的公司lol做框网站
  • 个人网站建立策划书前言苏州有什么好玩的地方吗
  • 郑州网站外包公司简介网站开发维护岗位职责
  • 站酷网页版镇江网站制作服务
  • 惠阳建设局网站西安计算机培训班速成班
  • 国外建筑设计网站网站打开是别人的
  • 提供有经验的网站建设现代网站开发建设
  • 广告设计图网站电子商务网站建设的目的意义
  • 潮品服饰网站建设规划书wordpress 主题 家居
  • 镇江seo网站优化app研发费用
  • 什么叫网站建设方案书珠海网站建设公
  • 建设网站教程视频视频下载谁知道陕西省建设监理协会的网站
  • 自己搭建网站的步骤哈尔滨网站建设效果好
  • 网站空间的选择企业logo设计用什么软件
  • 苏醒主题做的网站wordpress free theme
  • 网站开发 岗位及职责枣阳做网站
  • seo网站优化对象广州品牌包装设计
  • 广州番禺营销型网站定制开发电商网站建设
  • 公司想制作网站吗网站 建设 外包
  • wp怎么做双语网站安徽省工程建设项目信息网
  • 做外贸哪个网站可以接单wordpress 子模板
  • 鹰潭做网站建e网是什么软件