ps:关于电商订单这块,订单表的设计应该是主表是保留订单相关属性,比如订单id,创建时间等等,客户信息,地址信息,物流信息等单独建表,形成 one-many,订单操作完,可以归档数据。所以说我们公司现在的表结构设计就是他妈的操蛋!
定时器使用注解:@Scheduled(cron = "0 0/1 * * * ?") //每隔一分钟执行一次
今天看到同事写的分表操作,先暂时记录下一些东西,后期会陆续补充。
/** * * 方法描述:定时执行订单超过24小时,自动将订单表的状态改为取消 * 创建时间:2015-5-26 下午7:51:26 */ @Scheduled(cron = "0 0/10 * * * ?") public void AutoModifyOrderStatusToCancel() { //调用定时执行订单超过24小时,自动将订单表的状态改为取消service this.orderTimeService.AutoModifyOrderStatusToCancel(); }
<select id="selectAutoCancelOrderId" resultMap="BaseResultMap"> SELECT boc.ORDER_ID, #{_parameter} AS tableNum <if test="_parameter==-1"> FROM BIZ_ORDER boc </if> <if test="_parameter!=-1"> FROM BIZ_ORDER_${_parameter} boc </if> WHERE NOW()-INTERVAL 24 hour>ADD_DATE AND ORDER_STATUS=1 </select>
/** * * 方法描述:自动执行更新超过24小时订单状态改为取消 * 创建时间:2015-5-26 下午7:36:39 */ public void AutoModifyOrderStatusToCancel(){ //根据物理分表,循环更新每一张表中的订单状态 for(int tableNum=-1;tableNum<10;tableNum++){ List<OrderTimerVO> orderList=this.baseDao.selectList("selectAutoCancelOrderId",tableNum, OrderTimerVO.class); //自动执行更新超过24小时订单状态改为取消 if(orderList.size()>0){ if(tableNum==-1){ int result=this.baseDao.update("updateOrderStatusToCancelId",orderList,OrderTimerVO.class); } else if(tableNum==0){ int result=this.baseDao.update("updateOrderStatusToCancelId0",orderList,OrderTimerVO.class); } else if(tableNum==1){ int result=this.baseDao.update("updateOrderStatusToCancelId1",orderList,OrderTimerVO.class); } else if(tableNum==2){ int result=this.baseDao.update("updateOrderStatusToCancelId2",orderList,OrderTimerVO.class); } else if(tableNum==3){ int result=this.baseDao.update("updateOrderStatusToCancelId3",orderList,OrderTimerVO.class); } else if(tableNum==4){ int result=this.baseDao.update("updateOrderStatusToCancelId4",orderList,OrderTimerVO.class); } else if(tableNum==5){ int result=this.baseDao.update("updateOrderStatusToCancelId5",orderList,OrderTimerVO.class); } else if(tableNum==6){ int result=this.baseDao.update("updateOrderStatusToCancelId6",orderList,OrderTimerVO.class); } else if(tableNum==7){ int result=this.baseDao.update("updateOrderStatusToCancelId7",orderList,OrderTimerVO.class); } else if(tableNum==8){ int result=this.baseDao.update("updateOrderStatusToCancelId8",orderList,OrderTimerVO.class); } else if(tableNum==9){ int result=this.baseDao.update("updateOrderStatusToCancelId9",orderList,OrderTimerVO.class); } } } }
相关推荐
其中有每个命令的使用说明与注释。并增加了清理数据的方式。以及导入输入的注意事项
分表是一种常见的数据库扩展策略,它通过将一个大表拆分成多个小表来提高查询效率和系统性能。在PHP中,我们可以编写SQL语句或者使用ORM(对象关系映射)框架来实现这一目标。下面我们将深入探讨两种常见的分表策略...
`db-route-demo`可能是这个路由机制的示例代码,展示了如何在实际项目中实现数据的定位和操作。 分库分表虽然可以解决数据量大、查询慢的问题,但也带来了一些新的挑战,比如跨库事务的处理、数据一致性问题、...
在教育领域,尤其是在计算机科学的教学实践中,为了更好地评估学生在Access数据库大作业方面的表现,通常会采用计分表的形式来汇总和分析学生的成绩。这份计分表不仅包括对学生的个人评价,还涉及到对团队合作项目的...
在大数据量的情况下,单表操作可能导致锁表、阻塞,严重影响数据库性能和用户体验。为了解决这些问题,分表技术应运而生,通过将数据分散到多个表中,降低单一表的访问压力,提升数据处理速度。 分表的主要好处包括...
数据库分库分表是应对大数据量和高并发场景下的常用策略,目的是为了减轻单个数据库的负担,提高系统的整体性能和稳定性。随着互联网业务的发展,单个关系型数据库的存储容量、连接数和处理能力往往难以满足需求。当...
- 很简单,网上很多关于分表的都是含糊其辞,没有任何详细的,通用的,既然没有,那么我写一个出来吧。 - 主要目的 - 产品上线以后,数据量越来越大,当一个表有几十万上百万条记录的时候,是时候考虑分表了。...
水平分表是在同一个数据库内,把同一个表的数据按一定规则拆到多个表中,多数据源采用 mybatis-plus的dynamic-datasource 分库分表采用sharding-jdbc 数据库连接池管理是alibaba的druid-spring-boot-starter 项目使用...
当单个表的数据量过大,为了提高查询速度和维护数据库性能,通常会将大表拆分为多个小表,这就是分表。分表方式有多种,比如按照范围、哈希值或者时间等规则进行切分。在MySQL中,可以使用内置的分区功能来实现。 ...
综上所述,"Python+MySQL分表分库实战"的学习内容涵盖了数据库设计原则、Python数据库操作技巧、分库分表策略以及性能优化等多个方面。通过学习和实践,开发者可以有效地解决大数据场景下的存储和查询问题,提高系统...
1、shardingsphere 并不直接支持达梦数据库,需要实现部分接口逻辑。 2、本demo并不完全支持达梦sql 3、包里面含有test demo可以直接测试 4、感谢shardingsphere 团队。 5、具体如何实现的 请查看我的博文 ...
数据库代理服务器在收到插入操作的SQL语句后,会根据任务分配表原则进行分库分表操作,同时生成路由表,便于后续数据的更新、删除等操作的快速定位。 在实际操作中,数据库插入操作时,客户端首先发送插入语句给...
"php mysql分库分表实例"这个主题就是针对这样的需求,它涉及到如何利用PHP编程语言来实现MySQL数据库的分库分表操作,以提高系统的性能和可扩展性。 分库分表是一种常见的数据库垂直切分和水平切分策略,用于解决...
MySQL分表及分表后插入sql语句,表为订单表,可以参考一下
1. 垂直分表:垂直分表适合将表中某些不常用而且占了大量空间的列拆分出去,垂直分表的引入的复杂性主要体现在表操作的数量会增加。 2. 水平分表:水平分表适合表行数特别大的表,如果单表行数超过 5000 万就必须...
数据库分库分表技术可以将大型数据库分割成多个小的逻辑数据库,从而提高数据库的性能和可扩展性。同时,该技术还可以提高数据的安全性和可靠性,例如,可以将敏感数据存储在单独的数据库中,以提高数据的安全性。 ...
当一个表包含数百万甚至上千万的记录时,查询和插入操作可能会变得非常缓慢,导致整个数据库系统的性能下降。分表和分区的目标是提高数据库的效率,特别是增、删、改、查(CRUD)操作的速度。 分表,顾名思义,是将...