全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多

概述

更新时间: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有很低的概率在较短的时间内(毫秒级别)不在一台机器,这种情况下,强一致读取会失败。

本文导读目录