网站建设咨询公给人家做的网站想改怎么改

张小明 2025/12/29 16:36:56
网站建设咨询公,给人家做的网站想改怎么改,淘宝客网站做的好的,网站做点击收费文章目录引言什么是大事务#xff1f;大事务带来的问题1. 导致数据库连接池耗尽2. 引发大量的行锁竞争与死锁3. 回滚日志#xff08;Undo Log#xff09;堆积与磁盘空间暴涨4. 造成主从延迟 (Replication Lag)5. 内存溢出与服务宕机风险6.崩溃恢复时间变长如何避免大事务(如…文章目录引言什么是大事务大事务带来的问题1. 导致数据库连接池耗尽2. 引发大量的行锁竞争与死锁3. 回滚日志Undo Log堆积与磁盘空间暴涨4. 造成主从延迟 (Replication Lag)5. 内存溢出与服务宕机风险6.崩溃恢复时间变长如何避免大事务(如何处理大事务)事务粒度要小避免在事务中做非数据库操作编程式事务替代声明式事务优化大批量处理Batch ProcessingSQL语句优化最终一致性与 Saga 模式设置事务超时总结引言大家好今天来讲讲日常开发和面试中常常遇到的问题什么是大事务如何避免大事务已经有了大事务怎么进行解决如果任由大事务这样风格的代码横行项目变成史山是必然的事情给后来者维护项目和继续开发带来了很大的难度。那我们今天就一起来探讨一下这个事情吧什么是大事务大事务通常指满足以下一个或者多个特征的事务涉及大量数据或者资源的修改(如一次update几十万行数据)执行时间很长(几秒几分钟甚至更久)包含大量未提交更改(undolog非常大)那么简单来说就是事务的粒度太大导致一个事务执行时间太长数据库压力太大。大事务带来的问题1. 导致数据库连接池耗尽这是最直接的影响。原理每个事务都会占用一个数据库连接Connection。如果事务处理非常慢比如在事务中进行了耗时的远程 RPC 调用或大量 IO该连接将无法释放回池中。后果当并发量稍微上升连接池被占满后续请求将因获取不到连接而报错如 Java 中的SQLTransientConnectionException导致整个服务瘫痪。2. 引发大量的行锁竞争与死锁锁定时间长事务执行时间越长持有的行锁Row Lock时间就越久。阻塞范围广在并发环境下其他想要更新相同数据的事务必须等待。这会导致大量线程处于Lock wait状态。死锁概率增加事务涉及的 SQL 越多操作表的顺序复杂的可能性就越大从而更容易触发死锁。3. 回滚日志Undo Log堆积与磁盘空间暴涨这是容易被忽视的底层危害。多版本并发控制 (MVCC)为了实现隔离级别InnoDB 需要在Undo Log中保存旧版本数据。清理延迟只要大事务不提交系统为了保证该事务能看到“一致性快照”就不能清理相关的Undo Log。后果Undo Log持续膨胀不仅占用磁盘空间还会导致数据库的Purge线程压力过大严重影响整机性能。4. 造成主从延迟 (Replication Lag)在 Java/Go 后端架构中通常会有读写分离。串行执行虽然主库可以并发执行多个事务但传统的 MySQL 从库同步Binlog 重放在某些配置下是单线程或按库并行的。延迟爆发主库执行了 10 秒的大事务同步到从库也需要至少 10 秒。这会导致从库读取到旧数据引发业务逻辑错误如“刚修改成功却查不到新数据”。5. 内存溢出与服务宕机风险大事务需要维护大量的事务上下文锁信息redologundolog消耗大量内存缓存区中的被修改的页(脏页)堆积,刷盘压力大如果一个事务一次性加载了数百万行数据到内存中进行处理极易触发 Java 的Full GC或 Go 的OOM。6.崩溃恢复时间变长数据库异常宕机之后InnoDB需要通过redolog重做已提交事务如果存在大事务重做时间可能长达数小时导致服务长时间不可用回滚也是相同道理通过undolog回滚未提交事务存在未提交的事务回滚过程可能长达数小时导致服务长时间不可用如何避免大事务(如何处理大事务)如何避免大事务的做法其实就是讲如何处理大事务的这种情况。事务粒度要小我们要搞清事务逻辑什么是核心数据事务逻辑什么是辅助数据事务逻辑。不要把所有操作都塞进一个事务。识别出哪些是必须保证“原子性”的核心数据修改哪些是即使失败了也可以通过补偿恢复的辅助业务。案例用户下单流程。大事务做法开始事务 - 扣余额 - 减库存 - 生成订单 - 增加积分 - 发送下单成功短信 - 提交事务。优化做法1.核心事务扣余额 减库存 生成订单保证钱和货一致。 2.异步/独立积分增加和发短信通过消息队列 (MQ)或在事务提交后的异步线程中处理避免在事务中做非数据库操作这是最常见的错误。绝对不要在事务块内执行耗时操作。严禁操作RPC 接口调用、HTTP 请求、复杂的文件读写、或是密集的 CPU 计算如加密、大图片处理或者是MQ发送。后果如果第三方接口响应慢比如 5 秒你的数据库连接就会被白白占用 5 秒编程式事务替代声明式事务在Spring 中大家习惯用Transactional但这容易导致整个 Service 方法都被包裹在事务中。优化使用TransactionTemplate(Java) 或手动管理db.Begin()(Go)。// 2. 只有核心写入在事务内transactionTemplate.execute(status-{updateData();returnnull;});// 3. 事务外的异步通知sendNotification();优化大批量处理Batch Processing如果需要更新 10 万条数据不要在一个事务里完成。方法分页处理 多事务。实践每 500 或 1000 条开启一个新事务并提交。这样即使其中一部分失败之前的已经入库且不会长时间占用锁和 Undo Log。SQL语句优化控制“查询”的范围有时候事务变大是因为SELECT耗时太久。只查必要字段避免SELECT *减少内存和网络开销。事务前置查询尽量在BEGIN之前完成复杂的只读查询。在事务内只进行必要的SELECT FOR UPDATE这种需要锁定的查询。最终一致性与 Saga 模式在微服务或复杂业务中如果跨库操作太多与其追求一个“超大事务”不如采用分布式事务方案本地消息表在事务内只记录一条“待处理任务”事务提交后由后台任务异步执行后续逻辑。Saga 模式拆分成多个小事务如果后面步骤失败执行对应的“逆向补偿”操作如退款。设置事务超时在innodb里面设置事务超时时间避免长时间占用资源。通过代码层监测超过一定时间就返回异常中断防止事务无限期运行(这里要根据具体业务具体限时)总结大事务 高风险操作。 它不仅占用锁、内存、I/O、日志空间还会阻塞并发、拖慢复制、延长恢复时间严重时可导致数据库雪崩或服务瘫痪。因此在生产环境中应严格避免大事务坚持“小事务、快提交”的原则。对于批量数据处理任务务必采用分批提交 限流 监控的策略。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

六安网站建设找哪家济南企业网站建设公司

一、共同目标:把域名变成IPTCP 53 端口和 UDP 53 端口的核心功能完全一致:实现域名到 IP 地址的解析。这是 DNS(Domain Name System,域名系统)存在的根本目的。互联网通信依赖 IP 地址,但人们更习惯用域名&…

张小明 2025/12/28 22:38:23 网站建设

网站开发实习网站锚文本使用查询

Puppet开发、部署与扩展:最佳实践指南 1. Puppet开发与部署基础 在Puppet开发过程中,我们可能会对代码进行修改。例如,通过Git操作将代码的首行改为文档注释。修改后,在开发环境中运行Puppet代理时,之前的错误不再出现: # puppet agent --test --noop --environment=…

张小明 2025/12/28 22:39:32 网站建设

成都建设材料二维码网站永城城乡建设局网站

FaceFusion能否实现自动情绪增强功能? 在虚拟主播越来越频繁地出现在直播带货、在线客服甚至综艺节目中的今天,一个共同的痛点逐渐浮现:这些“数字人”虽然面容精致,却常常表情呆滞、缺乏情感波动。观众可以接受技术尚未完美&…

张小明 2025/12/28 23:36:13 网站建设

企业网站设计要点网站多国语言

Langchain-Chatchat 如何实现问答结果的收藏功能 在企业级知识管理场景中,一个常见的痛点是:用户反复提问相同或相似的问题,而系统每次都要重新检索和生成答案。即使某次回答非常精准、详尽,也无法被保留下来供后续直接复用——这…

张小明 2025/12/28 23:37:21 网站建设

公司网站策划书1688做网站多少钱

中国开源年会 COSCon 是业界最具影响力的开源盛会之一,由开源社在 2015 年首次发起,2016 年正式得以命名。九年来,中国开源年会以其独特的中立社区定位及日益增加的影响力,吸引了越来越多国内外企业、高校、开源组织和社区的大力支…

张小明 2025/12/29 0:27:54 网站建设