上课点名批量操作的优化问题
大家好,想问个批量操作优化的问题
场景:
上课老师点名系统,点名会批量插入点名记录,就是一个学员会有个单独的记录,然后还要更新学员的已上课次数请假次数等,次数是在另外一张表里面。
表说明:
- 学生关联班级表,里面有学生在该班级的上课次数请假次数等。
- 学生上课记录表, 点名需要批量往这里面插入记录,一个班有四十个人就插入四十条。该表等于核心日志表,记录请假上课等行为。
问题描述和疑难点
因为班级人数多,会导致插入数据变多,接口就会慢很多,因为担心误操作重复操作等,觉得这样的插入不太好,目前都是同步操作的。
想问下有没有什么建议,在数据库或者接口上。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在Java代码中循环肯定是会慢的,因为每插入一条都会连接一次数据库。
架建议在持久层进行循环插入减少连接次数
比如使用jdbc:
或者Mybatis的
foreach
标签等等1、数据库层面,如果担心插入数据较多,可以考虑分表。分别给每个班都维护一个上课记录表,如果数据量还是比较大,可以考虑按日期继续切分记录表。核心思想就是将大表切分成小表;
2、接口层面,针对点名的场景,个人理解对实时性要求不高,并且可以容忍一定程度的数据丢失。可以使用异步的方式存储数据。如果担心异步导致数据丢失,可以在接口上记录调用日志,在数据丢失时便于数据恢复。
可以加个mq跑异步,但你这人数应该不会很多,不应该会卡的吧