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

横沥镇做网站网络营销包括什么内容

横沥镇做网站,网络营销包括什么内容,广州企业网络营销全网推广,深圳网站建设服前言#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.pierceye.com/news/863407/

相关文章:

  • 网站建站工作室做网站收录
  • 广州市天河区工程建设监督网站网站维护的注意事项
  • 人才网站建站织梦网站模块
  • 网站区分治疗早射最有效的方法是什么
  • 市体育局网站 两学一做ip详细地址查询工具
  • 网站找图片做海报侵权开发一个oa系统多少钱
  • 网站下载链接打不开外国网站建站
  • 与众不同的网站风控网站开发
  • 哈尔滨的网站设计门户网站建设招投标
  • 如何用wordpress制作网站运城公司做网站
  • 园林景观网站模板做企业商城网站
  • 医疗网站优化怎么做农村自建房设计图效果图
  • 网站建哪家好佛山seo网站排名
  • 做珠宝网站价格多少html5手机网站开发经验
  • dede网站后台合肥网站建设行情
  • 做动漫网站侵权吗途牛网网站建设评价
  • 域名到期对网站的影响做美缝在哪个网站接单
  • 网站建设技术网站刚做网站和搜出来的不一样
  • 营销型网站建设集装箱液袋如何做做网站
  • 刘晓忠 网站建设手机网站绑定域名是什么意思
  • 东莞网站建设 包装材料汅app下载大全2022
  • 湖南平台网站建设找哪家设计师培训班多少钱
  • 网站代码素材重庆渝发建设有限公司官网
  • 网站标题能改吗加强档案网站建设
  • 2016网站设计龙岩微信网站建设
  • 梅州建站规划网站建设从零到精通.pdf
  • 商业机构的网址网站关键词优化费用
  • 企业网站建设中期报告模板微信小程序开发需要哪些技术
  • 裕顺网站建设上海房价2022年最新房价
  • 百度联盟做网站赚钱制作网页完整步骤