多线程-求 有关 高并发 数据区 读取更新 数据 的解决办法

问题描述

求 有关 高并发 数据区 读取更新 数据 的解决办法

问题:高并发 数据库取数据,每次取到一条数据后更新这条数据的状态为已取用过。
环境:3台服务器跑应用 处理请求,多线程数据库取数据

有点类似 12306的买票,查找过资料 有看到 1W人 同时抢一张票的问题。

现在考虑的问题是,如果票是足够多的,如何解决高并发取数据冲突的问题,如果用加锁的方式,会出现大量请求都取一条数据,导致 等待时间太长。

有没有 好的方案,可以避免同时请求到同一条数据。

解决方案

可以用大数据分布式云计算物联网等

解决方案二:

可以尝试用乐观锁机制解决。

时间: 2024-10-02 21:36:59

多线程-求 有关 高并发 数据区 读取更新 数据 的解决办法的相关文章

php批量添加数据与批量更新数据的实现方法_php技巧

本文实例讲述了php批量添加数据与批量更新数据的实现方法.分享给大家供大家参考.具体分析如下: php如果要批量保存数据我们只要使用sql的insert into语句就可能实现数据批量保存了,如果是更新数据使用update set就可以完成更新了,操作方法都非常的简单,下面整理两个例子. 批量数据录入 设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中. 其中,应用一个count(

求大神告知eclipse中关联library失败的解决办法

问题描述 求大神告知eclipse中关联library失败的解决办法 想实现一个Tab,想导入TabPageIndicartor的library,但老是错误,查了资料说是盘符错误,但还是不知道怎么操做,错误如图. 解决方案 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0522/1265.html 解决方案二: 谢谢回答.这个问题我已经解决了,只需要将library导入时,勾选将library文件同时复制到wordplace

php 批量保存数据与批量更新数据

if ($insert && $insertsql) {php 批量保存数据与批量更新数据   $keystr = $valstr = $tmp = '';   foreach($insertsql as $key => $val) {    if ($val) {     $keystr .= $tmp.$key;     $valstr .= $tmp."'".addslashes($val)."'";     $tmp = ',';   

servlet中文数据存入数据库为乱码的解决办法

今天在测试从web端存入数据到数据库,结果存入数据库的中文数据出现乱码.当然读取出来的时候也是乱码 乱码的原因是tomcat的内部编码格式iso8859-1导致.  而在每个jsp页面设置的utf-8仅仅是该页面显示是用utf-8,而你用form表单提交的数据仍然是iso8859-1.所以要在接受form表单数据的servlet页面加上一行代码request.setCharacterEncoding("utf-8"). 为了避免每页都要写request.setCharacterEnco

php批量添加数据与批量更新数据方法

批量数据录入 设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for 循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中. 其中,应用一个count()函数来获取数组中元素的个数. int count(mixed var); 表单提交页面  代码如下 复制代码 <form name="form1" method="post" action="index_ok.php"> &

ecshop无法读取配置文件shop_config.php解决办法

ecshop经常出现报错$data 未定义.导致整站致命错误!经过分析,,导致文件shop_config.php写入失败.数据大小为0.从而影响整站不能访问!这种错误是很致命的! 解决办法: 打开lib_base.php 查找include_once($cache_file_path);在其后加入一行代码 $data = !empty($data)?$data:false;   动态 的意思是 在读取 配置缓存文件失败的情况下 程序会直接读取数据库记录 并 重新生成 配置缓存文件. 这样就解决了

MSSQL2005数据附加失败报错3456解决办法

解决办法: 1.新建一个同名的数据库(数据文件与原来的要一致) 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) 6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了. 复制代码 代码如下: USE MASTER GO SP_CONFIGUR

导入excel数据sql server 文本被截断解决办法

excel文件里面的某一单元格文本非常长,在导入SQL Server 2008时,会出现如下错误: - 正在执行 (错误) 消息 错误 0xc020901c: 数据流任务 1: 输出"Excel 源输出"(9) 上的 输出列"F6"(30) 出错.返回的列状态是:"文本被截断,或者一个或多个字符在目标代码页中没有匹配项.". 解决方法:先将Excel数据导入到Access中,再将access数据导入到sql server中 解决方法二直接修改字段

MySQL 随机查询数据与随机更新数据实现代码_Mysql

MySQL随机查询数据 以前在群里讨论过这个问题,比较的有意思.MySQLl的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了. 复制代码 代码如下: SELECT * FROM table_name ORDER BY rand() LIMIT 5; MySQL的rand()函数在手册里是这么说的: RAND() RAND(N) 返回在范围0到1.0内的随机浮点值.如果一个整数参数N被指定,它被用作种子值. 关于MySQL