adb就是先删除再插入?高频,这个词能不能量化出来。单核多少UPDATE QPS才算高频?我用flink执行的,确实会不断update 宽表的某些字段。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个无法量化,高频率的update会导致集群负载过高,批量更新建议使用 REPLACE INTO,根据主键判断,如果数据存在,先删除后插入。参考文档:https://help.aliyun.com/document_detail/123585.htm?spm=a2c4g.128660.0.0.37a963b4TleOzN#concept-2138844,此回答整理自钉群“云数据仓库ADB-开发者群”
ADB 本质上是一个关系型数据库,它采用了行存储引擎。对于 UPDATE 操作,ADB 的实现方式是先在表中物理删除旧记录,再插入新记录(如果新记录与旧记录分布在同一个 block 中,则会覆盖旧记录)。
至于“高频”这个词,它并没有一个清晰的量化标准。不同的场景和系统有不同的定义。通常情况下,高频可以理解为每秒更新次数很大,比如每秒更新数百、数千次。
单核的 UPDATE QPS 取决于多个因素,比如硬件配置、SQL 语句复杂度、索引建立情况等等。通常情况下,如果单核 UPDATE QPS 能够达到数百或数千次,则可以认为是高频。ADB 的性能会受到多个因素的影响,比如网卡带宽、CPU 和内存负载、磁盘 IO 等。
对于你的情况,如果你的 UPDATE 操作确实很频繁且对性能有一定要求,建议对表的结构和索引设计合理,以及对 SQL 语句进行优化。
阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。