【手摸手玩转 OceanBase 141】其他相关规范
本文介绍在 OceanBase 数据库其他相关规范。导数的规范datax 导出后需拆成多个小文件,再逐个执行数据库导入,每个小文件控制在 1GB 以内其他禁止 force index、ignore index、straight_join、SQL_no_cache 在生产环境使用。禁止使用 BEGIN...END,LOOP...END LOOP,REPEAT...UNT
【手摸手玩转 OceanBase 140】HINT 的使用规范
本文介绍在 OceanBase 数据库关于 HINT 的使用规范。HINT 应该少用,仅在收集了相关表的统计信息并且使用语句在没有 HINT 的情况下评估了优化器计划之后,才谨慎考虑使用。更改数据库条件以及在后续版本中增强查询性能可能会导致代码中的HINT 对性能产生重大影响。HINT 介绍基于代价的优化器,与 Oracle 的 HINT 类似。如果 server 端不认识 SQL 语句中的 HI
【手摸手玩转 OceanBase 139】cache 的使用规范
本文介绍在 OceanBase 数据库关于 cache 的使用规范。业务上对某个字段频繁的重复写,推荐使用写缓存机制,如计数器的写入执行计划所占内存超过 20M 时,不会加入计划缓存。如果该计划为分布式执行计划且涉及多个表,不会加入计划缓存。使用 hint 控制计划缓存/+ USE_PLAN_CACHE(NONE)/ 表示不使用计划缓存。/+USE_PLAN_CACHE(DEFAULT)
【手摸手玩转 OceanBase 138】事务相关规范
本文介绍在 OceanBase 数据库关于事务的规范。OB 3.x 版本对对大事务本身没有大小限制,但是要控制好并发量,防止内存使用激增。对 where 子句中的 in 列表参数的个数不再限制。在 OBServer 初始化时,对 memstore 的内存使用率达到 80% 时开启写入进行了限速:alter system set writing_throttling_trigger_percenta
【手摸手玩转 OceanBase 137】表扫描方式规范
本文介绍在 OceanBase 数据库 SQL 编写中关于表扫描的规范。SELECT、UPDATE、DELETE、REPLACE 若有 WHERE 子句,且 WHERE 子句的条件必须使用索引进行查找(可以通过 explain 检查执行计划,是否走的索引查询)。尽量避免大表的全表扫描:一般情况下,大表的大多数查询使用索引扫描比全表扫描好,但对于 100 行以下的静态表可以全表扫描。使用
【手摸手玩转 OceanBase 136】多表关联规范
本文介绍在 OceanBase 中进行数据库多表关联语句的编写规范。多表连接查询推荐使用别名,且 SELECT 列表中要用别名引用字段,数据库.表格式。示例select a.cid from deposit_account.tbluser a where ...生产系统中,强烈不推荐使用外关联,包括左外关联,右外关联和全外关联。在多表连接的查询中,驱动表须要选择结果集较小的表。禁止写成多层子查询嵌
【手摸手玩转 OceanBase 135】DML 语句编写规范
本文介绍在 OceanBase 中进行数据库 DML 语句的编写规范。INSERT 语句必须指定具体的字段名称,不要写成 INSERT VALUES(......)形式,请指定需要插入的 column_name。禁止 force index、ignore index、straight_join、SQL_no_cache 在生产环境使用。SQL 语句在程序中传入的参数值
【手摸手玩转 OceanBase 134】SELECT 语句编写规范
本文介绍在 OceanBase 中进行数据库 SELECT 语句的编写规范。SELECT 语句推荐指定具体字段名称,禁止写成 "*"。增加查询分析器解析成本。增减字段容易与 resultMap 配置不一致。推荐去掉 SELECT 无用列:SQL 语句的 SELECT 部分只写必要的列,因为多余的列会导致数据库产生回表(进入数据页获取请求的特定列),导致更多的 I/O。使用到分区
【手摸手玩转 OceanBase 133】SQL 编写限制
本文介绍在 OceanBase 中进行数据库使用编写 SQL 的相关限制。有主键表需要满足以下规则:每个数据表最多拥有一个主键列集合。主键值不能为 NULL 或空串。主键的值不允许变更。主键列的数量不能超过 64 列。主键数据总长度不能超过 16 KB。类型最大长度为 32767,当创建 VARCHAR2 列时,必须列指定最大长度,且必须至少为 1 个字节。NUMBER 是变长、精确的数值类型,占
【手摸手玩转 OceanBase 132】部署 OceanBase 数据库生产环境,学习一下
名词解释中控机器存储 OceanBase 数据库安装包和集群配置信息的机器。目标机器安装 OceanBase 数据库的机器。OBDOceanBase Deployer,OceanBase 开源软件的安装部署工具,简称为 OBD。OBProxyOceanBase Database Proxy,OceanBase 高性能反向代理服务器,简称为 OBProxy。OCPOceanBase Cloud Pl
【手摸手玩转 OceanBase 131】Python 应用程序连接 OceanBase 数据库
本文提供 Python 应用程序使用 OceanBase Connector/J 连接 OceanBase 数据库的代码示例。前提条件确保设置了基本的数据库开发环境。确保计算机上的 Java 环境为 Java JDK 8 版本。确保计算机上的 Python 环境为 3.6.8 版本。请联系技术支持人员获取 OceanBase Connector/J 驱动程序安装包。操作步骤安装 JayDeBeAp
【手摸手玩转 OceanBase 130】Java 应用程序连接 OceanBase 数据库
本文提供 Java 应用程序连接 OceanBase 数据库的代码示例。前提条件确保设置了基本的数据库开发环境。确保计算机上的 Java 环境为 Java JDK 8 版本。请联系技术支持人员获取 OceanBase Connector/J 驱动程序安装包。操作步骤将 OceanBase Connector/J 的 JAR 包放入本地 /usr/share/java 路径中,并
【手摸手玩转 OceanBase 129】C 应用程序连接 OceanBase 数据库
本文提供 C 应用程序连接 OceanBase 数据库的连接代码示例。前提条件确保设置了基本的数据库开发环境。确保满足如下硬件环境:硬件平台:x86_64。操作系统:CentOS/Redhat 系 Linux 发行版 7.2。编译器:GCC 4.8。请联系技术支持人员获取 OBCI 和 libobclient 的 RPM 安装包。安装 C 驱动当您获取 RPM 包后,在命令行工具中以 root 用
【手摸手玩转 OceanBase 128】在 OceanBase 数据库上进行 TPC-C 测试
TPC-C 是 TPC 组织(Transaction Processing Performance Council)推出的一系列性能测试标准中的一款,自推出以来,一直是数据库业界性能测试的重要参考,全世界各大数据库厂商都向 TPC 委员会提交了测试结果,以期望在 TPC-C 测试的排行榜上取得更好的成绩。OceanBase 数据库在 2019 年和 2020 年两次刷新了 TPC-C 的世界纪录,
【手摸手玩转 OceanBase 127】体验 OceanBase 数据库热点行更新能力
随着在线交易、电商行业的发展,业务系统的热点并发压力逐渐成为一种挑战。热点账户短时间内余额大量更新,或者热门商品在营销活动中限时秒杀,都是这种场景的直接体现。热点更新的本质是短时间内对数据库中的同一行数据的某些字段值进行高并发的修改(余额,库存等),这其中的瓶颈主要在于关系型数据库为了保持事务一致性,对数据行的更新都需要经过“加锁->更新->写日志提交->释放锁”的过程,而这个过
【手摸手玩转 OceanBase 126】体验 Operational OLAP
OceanBase 数据库可以处理混合负载类型的场景。由于 OceanBase 数据库是基于对等节点的分布式架构,使得它既可以承载高并发和可扩展的 OLTP 任务,还可以在同一套数据引擎中基于 MPP 架构进行 OLAP 的并行计算,无需维护两套数据。在 OceanBase 数据库中,您不但可以在大量在线业务数据上直接进行并行分析,还可以通过 PDML 能力(Parallel DML)将批量写入数
【手摸手玩转 OceanBase 125】体验并行导入 & 数据压缩,欢迎一起切磋
本文介绍了并行导入和数据压缩相关的使用及说明。并行导入除了分析查询,Operational OLAP 中还有很重要的一个部分,那就是大量数据的并行导入,也就是数据批处理能力。OceanBase 数据库的并行执行框架能够将 DML 语句也通过并发的方式进行执行(Parallel DML),对于多节点的数据库,实现多机并发写入,并且保证大事务的一致性。结合异步转储机制,还能在很大程度上优化 LSM t
【手摸手玩转 OceanBase 124】体验多租户特性
OceanBase 数据库具有多租户的特性,在集群层面实现了实例资源的池化。在 OceanBase 数据库中,每一个租户即一个实例(类比 MySQL Instance)。租户与租户之间数据、权限、资源隔离,每个租户拥有自己独立的访问端口及 CPU、内存访问资源。背景信息OceanBase 数据库可以灵活的调整租户资源分配情况(CPU、内存),并且整个过程对上层业务透明。通过多租户机制,OceanB
【手摸手玩转 OceanBase 123】体验 DDL 新特性(MySQL 模式)
OceanBase 数据库 MySQL 模式下的 DDL 新特性包括变更主键、变更分区类型、变更列类型和修改字符集。变更主键OceanBase 数据库 MySQL 模式下的变更主键操作包括添加主键、修改主键和删除主键。添加主键添加主键的语法如下:ALTER TABLE table_name ADD PRIMARY KEY (column_
【手摸手玩转 OceanBase 122】体验 DDL 新特性(Oracle 模式)
OceanBase 数据库 Oracle 模式下的 DDL 新特性包括变更主键、变更分区类型和变更列类型。变更主键OceanBase 数据库 Oracle 模式下的主键操作包括添加主键、修改主键和删除主键。添加主键添加主键的语法如下:ALTER TABLE table_name ADD PRIMARY KEY (column_name);