根据VoltDB不做的事情
http://community.voltdb.com/DosAndDonts
他们陈述
不要创建返回大量数据的查询(例如SELECT *来自FOO,没有约束)特别是对于多分区 交易。在存储的返回数据中保守 程序
这是我拥有的一个用例。存储过程的某些方面是否使它们不适合此类查询,还是VoltDB特有的?在这种情况下,性能是否会降低到比Postgres等传统RDBMS更差的水平?
编辑:我的查询不是来自foo的select *但是我需要选择某些日期范围之间的所有金融交易,这可能会超过100米行
答案 0 :(得分:3)
所有数据库都需要支付实现和i / o成本,以便将大量结果集传回给用户。
但是,我可以专门讨论VoltDB。
在VoltDB中,存储过程都是事务。即使是选择数据库的大部分的结果集也与其他并发过程完全隔离。结果集中的元组需要在内部暂时缓冲(例如,用于跨分区排序或限制),然后返回给用户。
需要在可能需要数毫秒(或几秒)的I / O返回给用户的结果上保持完全隔离以及在多分区过程的协调节点处发生的聚合的组合限制了最大值结果集大小。
我怀疑未来版本将解决此限制 - 许多人的数据访问要求与您描述的类似。
答案 1 :(得分:1)
性能问题是大数据传输。这通常适用于所有数据库。
当数据库需要返回大量数据时,它需要使用大量资源(例如内存,CPU,网络IO),从而降低性能。
单独的网络IO可能是一个问题,好像它是一个大量的数据,在数据传输完成之前,没有其他任何东西可以通过网络。
答案 2 :(得分:0)