0

我们正在尝试将我们的数据库(mysql)移动到 amazon redshift(数据仓库),并且在更新仓库数据库时遇到了问题。我们已经在我们的数据库上启用了常规日志记录,然后我们正在从 redshift 的常规日志中重播所有这些查询。所有更新查询大约需要 6-7 秒。我正在寻找某种方式以更快的速度执行这些更新?Amazon redshift 在内部使用 postgre 数据库,如果任何为 redshift/postgre 本身解决了这个问题的人都可以提出解决方案,那就太好了。尽管使更新更快的通用方法也会有所帮助。我尝试过的一个解决方案是将所有更新合并到一组删除和插入中。因此,单个表上的所有更新都将转换为单个删除查询,其中包含组合 where 子句和单个批量插入查询。

4

1 回答 1

1

Redshift 不打算用作“常规”数据库 - 所有数据都应使用 COPY 命令(或 CREATE TABLE AS 语法)插入,然后将其用于 SELECTS。

对单行的操作(如插入或更新)不是该数据库的优化目标。

建议的解决方法(使用 DELETE/INSERT)而不是 UPDATE 将提高速度,但请记住,所有添加的行都插入到未排序的数据库块中,只有在 VACUUM 之后,所有数据才会正确排序,并且未使用的空间将被回收使用。

于 2013-05-30T12:38:07.183 回答