长数据库查询结果与并发写入同时

Ph0*_*n1x 6 sql database concurrency nosql database-performance

我很好奇.我有这样的流程:我们有大量的数据集合/表.并且有一些select长期需要3秒的定向查询.

然而,我们期待高度并发的环境,每秒我们在数据库中获得100条新记录.

所以假设我们有一个查询,在查询开始之前,我们有1000个项目满足这些查询.查询需要3秒,每秒有50个新项目与添加到数据库的查询匹配.我的问题是 - 这是这个查询返回给我的结果(它仍然是1000或1150或介于两者之间)以及它如何依赖于不同的数据库引擎(SQL,NoSQL).Ø

这不是关于确切数字的问题,而是更多 - 为什么它将是那些数字.


看起来问题有点宽泛.让我们用MySQL,Postgres,MongoDB和Cassandra限制数据库.

And*_*ert 1

一般来说(主要是因为你没有指定具体的数据库),数据库的并发级别是可以配置的,属于性能调优的范畴。

一些常见的锁定粒度是:

  • ROW - 一次仅锁定一行数据
  • PAGE - 一次锁定一些行组
  • TABLE - 整个表被锁定

因此,如果您使用 ROW 级别锁定,您可能会获得所有 1150 个结果,但代价是更高的锁定开销。或者,如果您使用表级锁定,您将很快获得 1000 个结果,但代价是数据流被阻止写入数据库 3 秒。