![](/img/trans.png)
[英]Performance of MySQL Insert statements in Java: Batch mode prepared statements vs single insert with multiple values
[英]Cassandra batch query vs single insert performance
我使用Cassandra java driver
。
我每秒收到150k请求,我将其插入到具有不同分区键的8个表中。
我的问题是哪种方式更好:
我问这个问题是因为,考虑到我的请求大小(150k),批处理听起来像是更好的选项,但因为所有表都有不同的分区键,批处理看起来很昂贵。
请从以下链接查看我的答案:
批次不是为了提高性能。 它们用于确保原子性和隔离。
批处理对单个分区写操作有效。 但批量经常被错误地用于尝试优化性能。 根据批量操作,性能可能实际上恶化。
https://docs.datastax.com/en/cql/3.3/cql/cql_using/useBatch.html
如果这些表之间不需要数据一致性,则使用单个插入。 单个请求在节点之间正确分布或传播(取决于负载平衡策略)。 如果您担心请求处理和使用批处理,批处理将在协调器节点上负担如此多的额外工作,这将是无效的我想:)
批次对性能产生巨大影响。 根据我的理解,最适合您的溶剂分为每个分区键的不同列表,然后使用批处理语句。 您将看到对性能的巨大影响。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.