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);
我有超过 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);