全部产品
阿里云办公

概述

更新时间:2017-06-07 13:26:11

DML(Data Manipulation Language)的主要作用是根据需要写入、删除、更新数据库中的数据。

OceanBase支持的DML主要有INSERT、REPLACE、SELECT、UPDATE和DELETE。

PARTITION表的DML限制:

  1. 因OceanBase 1.0是按partition进行数据打散的,从性能上考虑,SELECT、UPDATE和DELETE都的WHERE条件里都需要带上“partition(p0, p1,…)”,不带“partition(partition_list)”的SQL需要所有分区。

  2. 不带“partition(partition_list)”的SELECT、UPDATE和DELETE语法并不会报错,但会引起全表扫描。

  3. DML中REPLACE,INSERT,UPDATE,DELETE语句只支持同一个Partition的操作,跨Partition的操作直接报错;

SELECT语句跨Partition的情况:

  • 跨Partition Group的读请求,只支持跨分区弱一致读取;

  • 同一个Partition Group的读请求,支持跨分区强一致读取。需要注意的是,OB后台数据迁移的过程中,同一个Partition Group的多个Partition有很低的概率在较短的时间内(毫秒级别)不在一台机器,这种情况下,强一致读取会失败。