我遇到了 Java 堆大小问题,所以想检查 cassandra 中列的大小。我正在将许多列读入内存中的 Java。
感谢您的帮助
我遇到了 Java 堆大小问题,所以想检查 cassandra 中列的大小。我正在将许多列读入内存中的 Java。
感谢您的帮助
如果不检索列并直接检查大小,我认为没有任何内置方法可以做到这一点。
当最初写入值时,您需要将每列的大小存储在另一列中。
您可以在同一行中使用名称相似的列,因此您最终会得到与现在相同的行数,但每行的列数是原来的两倍)
row : col1 col1size col2 col2size
<data> <size> <data> <size>
或另一行中的同名列,因此您最终会得到两倍的行数,但与现在的列数相同)。
row1 : col1 col2
<data> <data>
row1sizes : col1 col2
<size> <size>
更新到地址注释:要在写入之前找到列的大小,客户端可以将对象序列化为字节数组,然后检查数组的大小:
String s = "foo";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(s);
System.out.println("Size="+baos.toByteArray().length);