假设有以下情况,有一个虚拟商品A,订阅价格 100 元/月,
按照规则,如果商品降价,则系统需要自动退还本月差价,
退差价的逻辑是,将本月的付款退款,然后重新按新的价格扣款,
那么,假设此时有 100 个用户订阅了此商品,商品降价一次,则需要分别执行退款和重新扣除的sql,大约 300 条sql来处理订阅者的退款数据,执行 300 条 SQL 需要耗费大量时间
有没有办法优化这种情况?
我觉得执行300条sql来重新以用户为单位处理的计费信息,挺合理的,如果你在一个语句里处理所有用户退款,我觉得这风险还是挺高的。
如果担心时间问题,我认为可以写到队列然后异步多线程执行。但是每个用户的退扣款都应该是事务的。
这个理论对数据库压力不会特别大,如果真的特别大,你可以选择弄个定时任务,每天晚上业务低峰执行,并且批量操作,这样可以减少数据库与服务器的压力
对于这种情况,你可以考虑以下几种方式来优化:
以上只是一些常见的优化思路,具体的优化方案需要根据你具体的业务场景和数据库环境来确定。
问题内容: 我正在尝试做一个欧拉计画问题,但它涉及到添加一个非常大的数字。(100!) 使用Java int和long太小。 谢谢你的建议 问题答案: BigInteger类 看起来可能是您想要的。
什么时候封装组件
我正在努力改进我写的一个数据传输程序。我在寻找如何让它更快的建议。我的程序通过填充ResultSet并将结果写入文件来从数据库(通常是Oracle11g)中提取数据。该程序定期查看表,并查询某个特殊列是否发生了更改。例如,这可能是这样一个查询:
我知道在一堂课上 我可以在初始值设定项列表中初始化,如下所示: 但是,如果计算所需的数据来自字符串并且可能涉及计算,那么从第二个构造函数初始化的正确方法是什么?
本文向大家介绍SQL命令优化需要记住的9点事项,包括了SQL命令优化需要记住的9点事项的使用技巧和注意事项,需要的朋友参考一下 与数据库交互的基本语言是sql,数据库每次解析和执行sql语句多需要执行很多步骤。以sql server为例,当数据库收到一条查询语句时,语法分析器会扫描sql语句并将其分成逻辑单元(如关键词、表达式、运算符和标识符)并生成查询树,最后查询优化器将分析所有可以访问数据库的
问题内容: 我当前的查询如下所示: 语义: 有两个输入值: 第4行:点数组 第12行:双精度数字: 第一段(第1-6行): 从点数组创建表以用于… 第二段(第8-14行): 对于表中的每个点:从表中获取一个随机(!)点,其距离< 将那些元组保存在表中 第三段(第16-19行): 对于表中的每个值:获取所有值并… 如果值不是唯一的:则选择一个随机值 输出:,,,(从输入值) 表格示例: 结果示例: