当前位置 : 主页 > 网络安全 > 测试自动化 >

cqrs查询性能

来源:互联网 收集:自由互联 发布时间:2021-06-22
我想知道何时应该考虑在查询存储中使用多个表. 例如,考虑产品的描述发生变化的问题.如果您有许多包含产品描述的聚合,则此更改可能会对只读查询存储的同步产生巨大影响. 那么您应
我想知道何时应该考虑在查询存储中使用多个表.

例如,考虑产品的描述发生变化的问题.如果您有许多包含产品描述的聚合,则此更改可能会对只读查询存储的同步产生巨大影响.

那么您应该考虑对数据进行轻微规范化以避免冗长的同步问题?这是禁止或不可接受的妥协吗?

谢谢,

CQRS不是关于使用每个视图的表,而是每个视图的表是CQRS使系统更容易的一个方面.

这取决于您,取决于您的具体背景和需求.我会这样看,该查询的最终一致性与高查询性能需求的成本是多少.您可能需要考虑系统的以下两个特征:

1)平均该命令的一致性,即更新受命令影响的所有读取模型所需的时间(还要考虑更改的优化存储过程是否优于使用ORM或其他抽象以这种方式更新数据库) ).

我的猜测是,除非你说的是数百万,在数百万条记录中,这里的一致性足以满足你的要求和用户对一致性的期望,可能只需几秒钟.

2)查询性能的重要性.你每秒收到多少查询?你能处理每次SQL连接吗?

在大多数实际情况中,这两种方法的优化都没有实际意义.无论记录如何,您都可以在几秒钟内使用良好的SP进行更新,这对于UI刷新来说足够一致(请记住,只要知道命令成功,发出命令的UI就会保持一致).

并且您通常不需要在系统中进行如此多的查询扩展,以至于单个连接会伤害您.您可能不想要的是在代码和存储过程中执行这些连接所增加的内部复杂性.

与CQRS中的所有内容一样,您不需要从第一天开始使用和优化它的每个方面.您可以逐步优化这些内容.今天使用连接,明天完全非规范化,反之亦然.

网友评论