我已经尝试过DataStax Java驱动程序,似乎插入数据的最快方法是使用内联所有参数组成CQL字符串.
这个循环在我的测试集群上需要2500ms左右:
PreparedStatement ps = session.prepare("INSERT INTO perf_test.wibble (id, info) VALUES (?, ?)") for (int i = 0; i < 1000; i++) session.execute(ps.bind("" + i, "aa" + i));
参数内联的相同循环大约是1300ms.如果有很多参数会变得更糟.我知道我可以使用批处理同时插入所有行但这不是此测试的目的.我也试过使用session.execute(cql, params)
,它更快但仍然不匹配内联值.
编写CQL字符串当然既方便又简单,但有更快的方法吗?