如何在 NuoDB 中将 SELECT 查询的性能提高到 table
How to improve the performance of SELECT query to a table in NuoDB
要求:
- 请考虑 spring 批量申请。
- 输入是一个包含一列值的文件。
- Spring批处理设计为面向块的设计。
- 块设计为一次获取 1000 条记录
- 因此,Reader 在微秒内从文件中读取 1000 条记录。
- 处理器一次获取一条记录并触发 SQL 查询:
select * from TABLE where COLUMN2 = "record"
可能只有一条记录或多条记录被检索到,这些记录经过一些业务逻辑。
- 在writer中,我们积累了业务通过的所有记录
逻辑(记录数将小于 1000)并插入
数据库。
问题在这里:
考虑 table 存储了将近 400K 条记录。
从文件中读取 1000 条记录时,需要几微秒。
在处理1000条记录时(也就是在数据库中命中上面的SQL查询1000次),处理需要4分钟。
写入数据库(例如插入 100 条选定记录)时,需要几微秒。
分析时发现table中只有Primary Key列索引。
我们正在使用的列 (column2) 未作为索引列包含在内。
请指教,添加列作为索引是否是更好的解决方案。
select * from TABLE where COLUMN2 = "record"
Please advise, whether adding a column as an index is a better solution to this.
是的,为您的 where
子句中使用的列添加索引应该会提高性能,在您的情况下,它是 COLUMN2
。
要求:
- 请考虑 spring 批量申请。
- 输入是一个包含一列值的文件。
- Spring批处理设计为面向块的设计。
- 块设计为一次获取 1000 条记录
- 因此,Reader 在微秒内从文件中读取 1000 条记录。
- 处理器一次获取一条记录并触发 SQL 查询:
select * from TABLE where COLUMN2 = "record"
可能只有一条记录或多条记录被检索到,这些记录经过一些业务逻辑。
- 在writer中,我们积累了业务通过的所有记录 逻辑(记录数将小于 1000)并插入 数据库。
问题在这里: 考虑 table 存储了将近 400K 条记录。
从文件中读取 1000 条记录时,需要几微秒。
在处理1000条记录时(也就是在数据库中命中上面的SQL查询1000次),处理需要4分钟。
写入数据库(例如插入 100 条选定记录)时,需要几微秒。
分析时发现table中只有Primary Key列索引。 我们正在使用的列 (column2) 未作为索引列包含在内。
请指教,添加列作为索引是否是更好的解决方案。
select * from TABLE where COLUMN2 = "record"
Please advise, whether adding a column as an index is a better solution to this.
是的,为您的 where
子句中使用的列添加索引应该会提高性能,在您的情况下,它是 COLUMN2
。