dataroaring commented on code in PR #1311: URL: https://github.com/apache/doris-website/pull/1311#discussion_r1832744475
########## i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/data-operate/update/update-overview.md: ########## @@ -58,27 +58,37 @@ PROPERTIES ( ### 主键模型的两种更新方式 -- 使用 Update 语句更新 +#### 使用`UPDATE`语句更新 -无论是 MoR 还是 MoW,语义都是完成对指定列的更新。这个适合少量数据,不频繁的更新。 +无论是 MoR 还是 MoW,语义都是完成对指定列的更新。单次UPDATE的耗时会随着被更新的数据量的增加而增长。 -- 基于导入的批量更新 +#### 基于导入的批量更新 -Doris 支持 Stream Load、Broker Load、Routine Load、Insert Into 等多种导入方式,对于主键表,所有的导入都是“UPSERT”的语义,即如果相同 Key 的行不存在,则插入。对于已经存在的记录,则进行更新。 +Doris 支持多种数据导入方式,包括 Stream Load、Broker Load、Routine Load 以及 Insert Into 等。对于主键表,所有导入操作默认采用“UPSERT”语义:当相同主键的记录不存在时执行插入操作,若记录已存在则进行更新操作。更新方式包括整行更新和部分列更新: -- 如果更新的是所有列,MoR 和 MoW 的语义是一样的,都是覆盖相同 Key 的所有 Value 列。 +- **整行更新**:Unique Key 表的更新默认为整行更新。在导入数据时,用户可以选择提供所有字段,或仅提供部分字段。当用户只提供部分字段时,Doris 会用默认值填充缺失的字段,生成完整记录并进行更新。 -- 如果更新的是部分列,MoR 和 MoW 的默认语义是一样的,即使用表 Schema 中缺失列的默认值作为缺失列的值,去覆盖旧的记录。 - -- 如果更新的是部分列,主键模型采用的是 MoW,并且设置了 MySQL Session 变量 partial_columns = true 或者 HTTP Header partial_columns:true,则被更新的缺失列的值,不是再使用表 Schema 中缺失列的默认值,而是已经存在记录的对应缺失列的值。 +- **部分列更新**:Unique Key MoW 支持部分列更新。用户可以通过设置会话变量 `enable_unique_key_partial_update = true` 或在 HTTP Header 中指定 `partial_columns:true` 来启用此功能。开启后,若导入数据的主键已存在,则仅更新指定的部分字段;若主键不存在,则使用默认值填充缺失字段。 我们会分别在文档 [主键模型的 Update 更新](../update/unique-update) 和 [主键模型的导入更新](../update/update-of-unique-model) 详细介绍两种更新方式。 ### 主键模型的更新事务 -无论是使用 Update 语句更新,还是基于导入的批量更新,都可能有多个更新语句或者导入作业在进行,那么多个更新如何生效,如何确保更新的原子性,如何防止数据的不一致,这就是主键模型的更新事务。 +#### 使用`UPDATE`语句更新数据 + +默认情况下,Doris 不允许在同一时间对同一张表进行多个`UPDATE`操作。`UPDATE`语句通过表级锁来确保事务的一致性。 + +用户可以通过修改 FE 配置来调整并发限制。当放宽并发限制时,`UPDATE`语句将不再提供事务保证。 Review Comment: give the name of the config. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org