分布式系统如何保持一致和可用-CA。因为当分区发生时,CA是不可能的。如果我们说不会发生分区,那么只有它们是CA,那么,如果不会发生分区,则所有CP或AP系统也将是CA。
我有多个休息端点。userId(http 标头)在所有端点中都是通用的。我想应用一个逻辑,假设如果未提供则设置其默认值,或者如果在请求进入方法之前在请求中提供则修剪它(例如:心跳)。我们如何在 spring boot rest mvc 中实现这一点。
@RestController
public class MyResource {
@RequestMapping(value = "/heartbeat", method= RequestMethod.GET)
public String heartbeat (@RequestHeader (value="userId", required=false) String userId)
{
...
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个虚拟表
create table emp
(
id int,
name varchar,
sal int
)
with cte1 as(
select * from emp where name like 'a%'
),
cte2 as (
select * from cte1 where sal > 100
),
cte3 as (
select * from cte1 where id != 1223
)
select * from cte2
union all
select * from ct3
Run Code Online (Sandbox Code Playgroud)
以这种方式使用 cte 是否可以保证 cte1、cte2、cte3 仅运行一次?
虽然我可以检查查询计划,但是如果数据发生更改并且下次优化器决定以其他方式执行此操作,这是否可以保证行为不会改变?
问题 1:删除查询是否作为 mysql/mariadb 中的整个事务运行。因此,如果我们有 100 万行要删除,mysql/mqriadb 服务器是否会将其作为一个整体删除,或者如果在删除某些行后出现问题,已删除的行将被恢复。
Q2:我们是需要在单个删除查询中删除行(无论需要删除多少行)还是需要在删除查询中设置限制并批量执行删除。如果需要以多少(要删除的行数)进行批处理,我们应该考虑一下。
cap-theorem ×1
mariadb ×1
mysql ×1
performance ×1
rest ×1
spring ×1
spring-boot ×1
spring-mvc ×1
sql-delete ×1
sql-server ×1