我们正在尝试将我们的数据库(mysql)移动到amazon redshift (数据仓库),并且我们在更新仓库数据库时遇到了一个问题。我们已经在db上启用了常规日志记录,然后我们在redshift上重放了常规日志中的所有这些查询。所有的更新查询大约需要6-7秒。我正在寻找一些方法,以更快的速度执行这些更新?Amazon redshift内部使用postgre db,如果有人能为redshift/postgre自己解决这个问题,那就更好了。不过,更快进行更新的一般方法也会有所帮助。我尝试过的一种解决方案是将所有更新合并到一组删除和插入中。因此,单个表上的所有更新都将转换为具有组合where子句的单个delete查询和单个批插入查询。有人可以提供替代解决方案或对我尝试的解决方案发表意见吗?
发布于 2013-05-30 20:38:07
Redshift不打算用作“常规”数据库-所有数据都应该使用复制命令(或CREATE TABLE作为语法)插入,然后使用它进行选择。
对单个行的操作(如插入或更新)不是针对此数据库进行优化的。
建议的解决方法(使用DELETE/INSERT)而不是UPDATE将提高速度,但请记住,所有添加的行将插入到数据库的未排序块中,只有在真空之后,所有数据才会被正确排序,未使用的空间将被回收使用。
https://stackoverflow.com/questions/16336485
复制相似问题