Java Derby:如何按记录访问数据库记录

Java Derby: How to access database reocrd by record

我有超过 20000000 行的数据。我想将一列(将数字存储为字符串)转换为十进制格式,以便搜索更快。

但是,如果我尝试通过 Java,将数据加载到结果集中,则结果集崩溃或显示 java 堆内存错误。

有什么方法可以修改每条记录,使字符串值可以转换并保存为新列中的十进制值?

你应该把 Java 排除在外——原始 SQL 可以做到这一点。最好的方法是添加一个新列,将新列设置为现有字符串列的十进制转换值,然后(如果您愿意)删除旧字符串列并重命名新列。

如果您使用的是 MySQL,例如,这看起来像:

ALTER TABLE mytable
  ADD COLUMN newcolumn DECIMAL(10,2);

UPDATE mytable
   SET newcolumn = CAST(oldcolumn AS DECIMAL(10,2))
 WHERE true;

ALTER TABLE mytable
 DROP COLUMN oldcolumn,
 CHANGE newcolumn oldcolumn DECIMAL(10,2);