java项目上线mysql查询慢_Java Web应用程序在缓慢的MySQL查询中停滞不前

可能发生的事情是您的数据在更新过程中被“锁定以进行更新” – 这取决于数据的重新计算方式.

解决此问题的一种好方法是将新计算放入单独的数据区域,然后在完成所有操作后切换到使用新数据.实现此目的的一种方法是使用数据库视图和版本号,如下所示:

create table my_statistics (

id int not null primary key auto_increment,

version int not null,

-- other columns with your data

);

create table stats_version (current_version int); -- holds just one row

create view stats as

select *

from stats_version v

join my_statistics s on s.version = v.current_version);

将新统计数据放入表中,版本号为current_version 1.完成所有计算后.然后一个简单的更新stats_version set current_version = current_version 1将切换到使用新数据.这最后一个语句只需几毫秒即可执行,因此锁定等待很小.

切换后,您可以删除旧的统计数据以节省空间.

使用“切换”方法进行更新和“原子更新” – 更新“立即完全”发生,因此用户看不到部分更改的数据集.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值