国产数据库OceanBase从入门到放弃教程

1. 介绍

是由蚂蚁集团(Ant Group,原蚂蚁金服)自主研发的分布式关系型数据库。它旨在解决海量数据存储和高并发访问的问题,特别适合金融级应用场景,如支付宝等对数据一致性、可靠性和性能有极高要求的服务。以下是关于 OceanBase 数据库的一些关键特点和优势:

1.1 核心特性

1. 分布式架构
  • 水平扩展:OceanBase 支持通过增加服务器节点来线性扩展系统容量,从而应对不断增长的数据量和用户请求。
  • 多副本机制:为了保证数据的高可用性和容灾能力,OceanBase 实现了多副本策略,确保即使部分节点故障也不会影响整个系统的正常运行。
2. 高性能
  • SQL 引擎优化:针对 SQL 查询进行了深度优化,支持复杂的事务处理和分析查询,能够在保证 ACID 特性的前提下提供高效的读写性能。
  • 全局一致性:利用 Paxos 协议实现分布式事务的一致性管理,确保跨多个数据中心的数据同步和一致性。
3. 高可用性
  • 自动故障转移:当主副本发生故障时,能够快速切换到备用副本继续服务,减少了业务中断时间。
  • 异地多活:支持跨地域部署,使得不同地区的用户可以就近访问数据,降低了网络延迟,并增强了灾难恢复的能力。
4. 兼容 MySQL/Oracle
  • MySQL 兼容性:提供了良好的 MySQL 协议兼容性,使得从传统 MySQL 数据库迁移到 OceanBase 变得更加容易。
  • Oracle 兼容性:部分版本也增加了对 Oracle 数据库语法的支持,方便企业平滑迁移。
5. 低成本
  • 硬件成本低:由于采用了普通的 X86 架构服务器作为集群节点,相比专用硬件设备大大降低了采购成本。
  • 运维成本低:简化了管理和维护流程,减少了人工干预的需求,提高了自动化程度。

1.2 应用场景

OceanBase 广泛应用于支付清算、电子钱包、转账汇款、信贷风控等领域,尤其是在需要处理大量交易且对响应速度和数据安全有严格要求的地方表现优异。此外,随着云服务的发展,OceanBase 也开始向云端延伸,为更多中小企业提供灵活可靠的数据库解决方案。

1.3 社区与生态

OceanBase 不仅是一个商业产品,也有活跃的开源社区版(OceanBase Community Edition),鼓励开发者和技术爱好者参与到项目的开发和完善中来。同时,围绕 OceanBase 形成了丰富的工具链和服务体系,包括但不限于监控报警、备份恢复、性能调优等工具,以及专业的技术支持团队。

2. 安装

安装要求:需要6G内存,14G磁盘空间。

2.1 镜像下载

下载oceanbase-ce镜像,这里只体验社区兼容MySQL版本的,兼容Oracle版本是企业版,商用,一般接触不到。如果企业要用,也是由厂商技术支持直接安装,一般接触不到这个镜像源。

# 下载oceanbase-ce镜像
docker pull oceanbase/oceanbase-ce

2.2 启动容器

docker run -p 2881:2881 \
	--name oceanbase \
	--restart=always \
	-e MODE=MINI \
	-e OB_TENANT_PASSWORD=123456 \
	-d oceanbase/oceanbase-ce

2.3 安装监测

启动后可实时观察日志是否成功安装

docker logs -f oceanbase

2.4 连接数据库

oceanbase-ce 镜像安装了OceanBase数据库客户端obclient,所以可以使用obclient客户端或其他方式。

# 1. 进入容器
docker exec -it oceanbase bash

# 无密码方式
obclient -uroot@sys -h127.0.0.1 -P2881

# 有密码方式
obclient -uroot@sys -h127.1 -P2881 -p123456

在这里插入图片描述

3. SQL语句

SQL的英文是Structured Query Language,简称SQL,是一种操作关系型数据库的结构化查询语言。操作数据库,最经常使用就是查询操作。

1、OceanBase数据库也兼容Oracle语法,这个社区版不支持;

2、OceanBase数据库的SQL语句不区分大小写,关键字建议使用大写;

3、SQL语句可以使用单行或多行书写,以分号结尾

4、注释

单行注释

- 单行注释

# 单行注释

多行注释

/*
多行注释
多行注释
*/

4. SQL分类

分类 说明 作用 备注
DDL 数据定义语言 用来对数据库、表、列的定义 data definition language
DML 数据操作语言 用来对数据库中表的数据进行增、删、改操作 data manipulation language
DQL 数据查询语言 用来对数据库中表的数据进行查询 data query language
DCL 数据控制语言 用来对数据库的控制(用户创建、权限控制) data control language

5. DDL

5.1 库的DDL

一个功能,一般都是四个动作,增删改查。

展示所有的数据库

show databases;

创建数据库

create database 数据库名称 charset=utf8;
create database if not exists 数据库名称 charset=utf8; # 使得SQL语句更加强健、健壮。

示例:

create database db1 charset=utf8;
create database if not exists db1 charset=utf8;

删除数据库

drop database 数据库名称;
drop database if exists 数据库名称;

示例:

drop database test;
drop database if exists test;

使用数据库

use 数据库名称;

查询正在使用的数据库

select database();

小结:

命令 作用 示例
show databases; 查看所有数据库 show databases;
create database if not exists 数据库名 charset=utf8; 创建数据库 create database if not exists db1 charset=utf8;
use 数据库名; 使用数据库 use db1;
select database(); 查看当前使用的数据库 select database();
drop database if exists 数据库名; 删除数据库 drop database if exists db1;

5.2 表、列的DDL

列的内容可以是数字、字符串、时间等,由数据类型约束

在满足业务需求的请求下,数据类型范围选择越小的。

数值数据类型

数据类型 字节数 有符号 无符号
tinyint 1个字节 -128~127 0~255
smallint 2个字节 -32768~32767 0~65535
mediumint 3个字节 -8388608~8388607 0~16777215
int 4个字节 -2147483648~2147483647 0~4294967295
bigint 8个字节 -263~263-1 0~2^64-1
float 单精度,4个字节 -231~231-1 0~2^32-1
double 双精度,8个字节
decimal[M, D] 双精度,8个字节

decimal(5,2),表示共5位数字,其中2位是小数,比如:888.88

字符串数据类型

数据类型 长度 用途
char(size) 最大255个字符 数据是定长,如md5的密码,邮编,手机号,身份证号等
varchar(size) 最大65535个字节 存放一般内容长度
tinytext 最大255个字节
text 最大65535个字节
mediumtext 最大16777215个字节 大段文本时,如新闻、文章、论文等
longtext 最大4294967295个字节 大段文本时,如新闻、文章、论文等

1、VARCHAR(size):0~65535字节 可变长度字符串,最大65532字节,1-3个字节用于记录大小【utf8编码size最大21844字符,gbk编码最大32766字符 】

2、查询速度:char > varchar

3、text与char、varchar不同的是,text不可以有默认值,能用varchar的地方不用text

日期+时间数据类型

数据类型 格式
date 年-月-日,如:2024-4-8
datetime 年-月-日 时:分:秒,如:2024-4-8 16:17:40
timestamp 年-月-日 时:分:秒,如:2024-4-8 16:17:40
time 时:分:秒,如:16:17:40
year 年,如:2024

datetime保存时间的范围: 1000-01-01 00:00:009999-12-31 23:59:59

timestamp保存时间的范围: 1970-01-01 00:00:012038-01-19 03:14:07

展示当前数据库所有表

show tables;

描述表结构

desc 表名;

查看表的创建语

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员buddha2080

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值