如何防止并发数据重复提交
2022-12-22阅读(86)
问:ASP.NET 怎么防止并发操作?
- 答:1、数据库有主键。插入数据不会出现你说的什么错误或不稳定吧
2、调用sql对数据库修改本身是自动上锁的。
如果要保证程序逻辑的一致性需要使用事务。
3、比如主键递增这种情况,或者只要是有主键。
4、程序无论用什么方式,都不可能在数据库中插入两条主键相同的记录。
5、同时多人使用,是否包括一种情况:同时多人修改(包括删除)。如果仅仅是同时多人添加,那么毫无问题。不会有并发问题;
6、如果存在同时多人修改的可能性的话,那就需要用“开放式并发”或“非开放式并发”。
7、开放式并发”相对简单。即:一个人修改并提交,被告知原始数据已被修改,则报错;自己找找这方面资料吧,VS与.NET已经集成了一些简单实现的方法。 - 答:并发是在数据库中按事务的方式考虑的问题,没有什么好考虑的,尽量不要在ASP中直接用SQL就行了,尤其是写入的SQL,要写入尽可能用存储过程。
问:关于重复提交表单,如果用多线程去并发请求,还是会出现重复提交的情况。虽然概率很小,但是还是存在。是
- 答:检查按钮是否连击,在提交过程中,只第一次点击生效
- 答:用线程池,或者设置一个线程开关,防止重复提交。
希望能帮助到你。 - 答:每个表单一个唯一key值,如果提交有相同key代表重复。
问:如何处理大量数据并发操作
- 答:处理大量数据并发操作可以采用如下几种方法:
1.使用缓存:使用程序直接保存到内存中。或者使用缓存框架: 用一个特定的类型值来保存,以区别空数据和未缓存的两种状态。
2.数据库优化:表结构优化;SQL语句优化,语法优化和处理逻辑优化;分区;分表;索引优化;使用存储过程代替直接操作。
3.分离活跃数据:可以分为活跃用户和不活跃用户。
4.批量读取和延迟修改: 高并发情况可以将多个查询请求合并到一个。高并发且频繁修改的可以暂存缓存中。
5.读写分离: 数据库服务器配置多个,配置主从数据库。写用主数据库,读用从数据库。
6.分布式数据库: 将不同的表存放到不同的数据库中,然后再放到不同的服务器中。
7.NoSql和Hadoop: NoSql,not only SQL。没有关系型数据库那么多限制,比较灵活高效。Hadoop,将一个表中的数据分层多块,保存到多个节点(分布式)。每一块数据都有多个节点保存(集群)。集群可以并行处理相同的数据,还可以保证数据的完整性。
拓展资料:
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
参考资料: