> 技术文档 > 深度体验KingbaseES在线平台:从零掌握企业级数据库实战(附架构图+代码案例)_kingbase数据库架构

深度体验KingbaseES在线平台:从零掌握企业级数据库实战(附架构图+代码案例)_kingbase数据库架构


目录

  • 🚀 开篇:为什么需要深度体验KingbaseES在线平台?
  • 📚 背景解析:KingbaseES的技术基因与生态布局
    • 1.1 技术演进路线图
    • 1.2 在线体验平台核心优势
  • 🛠️ 实战篇:从建库到优化的完整流程
    • 2.1 检查数据库版本及服务状态
    • 2.2 模式的创建和管理
      • 1. 创建模式
      • 2. 查看模式列表
      • 3. 使用模式
      • 4. 更改模式
      • 5. 删除模式
    • 2.3 表操作(创建、修改、添加数据等)
      • 1. 创建表
      • 2. 修改表结构
      • 3. 插入示例数据
    • 2.4 索引
      • 1. 创建索引
      • 2. 查看索引
      • 3. 修改索引
      • 4. 重建索引
      • 5. 删除索引
  • 📝 总结:KingbaseES在线平台的三大价值

🚀 开篇:为什么需要深度体验KingbaseES在线平台?

深度体验KingbaseES在线平台:从零掌握企业级数据库实战(附架构图+代码案例)_kingbase数据库架构
在数字化转型加速的今天,企业级数据库的选择直接影响业务稳定性。作为国产数据库\"四朵金花\"之一的电科金仓KingbaseES,凭借其高兼容性、强一致性、金融级安全特性,已成为政务、金融、能源等地方国产化替代的首选方案。本文将通过在线体验平台实战演练,带您从架构设计到代码实现,全面掌握这款企业级数据库的核心能力。

📚 背景解析:KingbaseES的技术基因与生态布局

1.1 技术演进路线图

#mermaid-svg-hBfXo2KLupPzFx50 {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-hBfXo2KLupPzFx50 .error-icon{fill:#552222;}#mermaid-svg-hBfXo2KLupPzFx50 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-hBfXo2KLupPzFx50 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-hBfXo2KLupPzFx50 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-hBfXo2KLupPzFx50 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-hBfXo2KLupPzFx50 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-hBfXo2KLupPzFx50 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-hBfXo2KLupPzFx50 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-hBfXo2KLupPzFx50 .marker.cross{stroke:#333333;}#mermaid-svg-hBfXo2KLupPzFx50 svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-hBfXo2KLupPzFx50 .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-hBfXo2KLupPzFx50 .cluster-label text{fill:#333;}#mermaid-svg-hBfXo2KLupPzFx50 .cluster-label span{color:#333;}#mermaid-svg-hBfXo2KLupPzFx50 .label text,#mermaid-svg-hBfXo2KLupPzFx50 span{fill:#333;color:#333;}#mermaid-svg-hBfXo2KLupPzFx50 .node rect,#mermaid-svg-hBfXo2KLupPzFx50 .node circle,#mermaid-svg-hBfXo2KLupPzFx50 .node ellipse,#mermaid-svg-hBfXo2KLupPzFx50 .node polygon,#mermaid-svg-hBfXo2KLupPzFx50 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-hBfXo2KLupPzFx50 .node .label{text-align:center;}#mermaid-svg-hBfXo2KLupPzFx50 .node.clickable{cursor:pointer;}#mermaid-svg-hBfXo2KLupPzFx50 .arrowheadPath{fill:#333333;}#mermaid-svg-hBfXo2KLupPzFx50 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-hBfXo2KLupPzFx50 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-hBfXo2KLupPzFx50 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-hBfXo2KLupPzFx50 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-hBfXo2KLupPzFx50 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-hBfXo2KLupPzFx50 .cluster text{fill:#333;}#mermaid-svg-hBfXo2KLupPzFx50 .cluster span{color:#333;}#mermaid-svg-hBfXo2KLupPzFx50 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-hBfXo2KLupPzFx50 :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;} 内核重构 SQL标准兼容 并行计算增强 分布式架构 云原生适配 KingbaseES V9

关键进化点:

完全兼容SQL92/99标准,支持Oracle语法迁移
自主研发的XSDB存储引擎,实现百万级TPS性能突破
内置数据加密、透明加密、强制访问控制三重防护

1.2 在线体验平台核心优势

特性 说明 零门槛接入 浏览器直连,无需安装客户端 全功能覆盖 支持DDL/DML/DCL、存储过程、事务等完整操作集 实时监控 提供SQL执行计划、锁监控、慢查询分析等可视化工具 场景化实验环境 预置电商、金融、物联网等12个行业数据模型

🛠️ 实战篇:从建库到优化的完整流程

2.1 检查数据库版本及服务状态

数据库模式与选择的模式一致,可继续下一步操作。否则请重新刷新页面,或与管理员联系。
深度体验KingbaseES在线平台:从零掌握企业级数据库实战(附架构图+代码案例)_kingbase数据库架构

数据库模式与选择的模式一致,可继续下一步操作。否则请重新刷新页面,或与管理员联系。

2.2 模式的创建和管理

模式又被称为schema,它是用于组织和命名数据库对象(如表、视图、函数等)的逻辑容器。模式是数据库中组织和管理数据库对象的重要机制,它提供了一种逻辑上的命名空间,具备如下优点: 可以避免命名冲突,允许在同一数据库中的不同模式下创建同名对象。 便于权限管理和隔离,每个模式分配不同的访问权限,以此控制用户或角色对特定模式中对象的访问权限,提高数据库的安全性。

下面将介绍模式常见的使用方式:

1. 创建模式

CREATE SCHEMA 用于在当前数据库中创建模式,创建模式时指定的模式名必须与当前数据库中任何现有模式的名称不同。

示例: 创建两个数据库模式kes01,db02。

create schema kes01;create schema db01;

2. 查看模式列表

可以通过查看sys_namespace视图查看当前数据库的模式信息。

select * from sys_namespace where nspname in (\'kes01\',\'db01\');

3. 使用模式

若要在指定模式下创建对象或者访问指定模式下的对象,需要使用模式名限定的对象名。该名称包含模式名以及对象名,他们之间用 . 号分开。

示例:

在kes01下创建db_info表。

create table kes01.db_info(id int,name varchar(20) );

向表中插入数据。

insert into kes01.db_info values (\'01\',\'kingbase\');

查询表中数据。

select * from kes01.db_info;

4. 更改模式

kingbaseES支持使用 alter schema 语句可以更改模式的相关属性。

示例:

将schema db01重新命名为db02。

alter schema db01 rename to db02;

查询新模式信息

select * from sys_namespace where nspname=\'db02\';

5. 删除模式

kingbaseES支持使用 drop schema 命令进行删除。

drop schema db02 cascade ;drop schema kes01 cascade ;

2.3 表操作(创建、修改、添加数据等)

表是KingbaseES数据库中最基本的操作对象。一个表描述了一个实体对象,它记录了实体对象的重要信息。KingbaseES数据库表对象类型是关系表,关系表由简单的列组成,是最常见的表类型。

表的管理包括创建表、修改表和删除表等操作,以及普通表、分区表等的管理。

1. 创建表

创建表customers客户表

CREATE TABLE customers ( C_ID INT AUTO_INCREMENT PRIMARY KEY, C_NAME VARCHAR(50) NOT NULL, C_ADDRESS TEXT NOT NULL, C_PHONE VARCHAR(15) NOT NULL);

创建分区表items商品表

CREATE TABLE items ( I_ID INT PRIMARY KEY, I_NAME VARCHAR(100) NOT NULL, I_PRICE DECIMAL(10,2) NOT NULL, I_STOCK INT NOT NULL)PARTITION BY RANGE (I_PRICE)( PARTITION p_low VALUES LESS THAN (200), PARTITION p_medium VALUES LESS THAN (500), PARTITION p_high VALUES LESS THAN (1000), PARTITION p_high_price VALUES LESS THAN (MAXVALUE));

创建orders订单表表

CREATE TABLE orders ( O_ID INT , O_DATE DATE NOT NULL, C_ID INT NOT NULL, I_ID INT NOT NULL, O_QUANTITY INT NOT NULL, O_TOTAL_PRICE DECIMAL(10,2) NOT NULL, FOREIGN KEY (C_ID) REFERENCES customers(C_ID), FOREIGN KEY (I_ID) REFERENCES items(I_ID));

2. 修改表结构

使用ALTER TABLE语句,给订单表添加一个主键。

ALTER TABLE orders ADD CONSTRAINT pk_orders PRIMARY KEY(O_ID);

使用ALTER TABLE语句,给订单表添加一个列comment列。

alter table orders add column comment varchar(20);

3. 插入示例数据

使用INSERT 命令用于向表中插入数据。

示例

向customers表中插入数据。

INSERT INTO customers (C_NAME, C_ADDRESS, C_PHONE) VALUES(\'Alice Smith\', \'123 Main St, City A\', \'123-456-7890\'),(\'Bob Johnson\', \'456 Oak Ave, City B\', \'234-567-8901\'),(\'Charlie Brown\', \'789 Pine Rd, City C\', \'345-678-9012\'),(\'Diana White\', \'321 Elm St, City D\', \'456-789-0123\'),(\'Edward Green\', \'654 Birch Dr, City E\', \'567-890-1234\'),(\'Frances Hill\', \'987 Maple Ln, City F\', \'678-901-2345\'),(\'George Wright\', \'432 Cedar Rd, City G\', \'789-012-3456\'),(\'Helen King\', \'135 Willow St, City H\', \'890-123-4567\'),(\'Ian Miller\', \'246 Oak Dr, City I\', \'901-234-5678\'),(\'Judy Davis\', \'368 Pine Ave, City J\', \'012-345-6789\');

向items表中插入数据

INSERT INTO items (I_ID, I_NAME, I_PRICE, I_STOCK) VALUES(\'1\',\'Laptop\', 1299.99, 50),(\'2\',\'Phone\', 699.99, 75),(\'3\',\'Tablet\', 299.99, 30),(\'4\',\'Monitor\', 199.99, 100),(\'5\',\'Keyboard\', 79.99, 80),(\'6\',\'Mouse\', 49.99, 100),(\'7\',\'Speaker\', 129.99, 40),(\'8\',\'Headphones\', 159.99, 60),(\'9\',\'Printer\', 239.99, 30),(\'10\',\'Scanner\', 179.99, 40);

向custimers表中插入数据。

INSERT INTO orders (O_ID, O_DATE, C_ID, I_ID, O_QUANTITY, O_TOTAL_PRICE) VALUES(\'1\',\'2023-10-01\', 1, 1, 2, 2599.98), (\'2\',\'2023-10-02\', 2, 2, 1, 699.99), (\'3\',\'2023-10-03\', 3, 3, 3, 899.97), (\'4\',\'2023-10-04\', 4, 4, 5, 999.95), (\'5\',\'2023-10-05\', 5, 5, 4, 319.96), (\'6\',\'2023-10-06\', 6, 6, 2, 99.98), (\'7\',\'2023-10-07\', 7, 7, 1, 129.99), (\'8\',\'2023-10-08\', 8, 8, 3, 479.97), (\'9\',\'2023-10-09\', 9, 9, 1, 239.99), (\'10\',\'2023-10-10\', 10, 10, 5, 899.95); 

2.4 索引

索引是一种与表相关联的数据结构,是为了提高数据检索的性能而建立的。KingbaseES索引为表数据提供快速存取路径。索引适用于一范围的行查询或指定行的查询。索引可建立在一个表的一列或多列上,一旦建立,将由 KingbaseES 数据库自动维护和使用,对用户是完全透明的,系统的优化器会根据统计信息确定是否使用索引来提高系统性能。索引逻辑和物理上都独立于与其相关联的表数据。因此,可以删除或创建索引,但不会对索引表产生影响。

1. 创建索引

kingbaseES使用 create index 语句来创建普通b-tree索引。

示例

在customers表的c_name列上创建索引。

create index indx_c_name on customers(c_name);

在itms分区表中的i_price列上创建索引。

create index indx_i_price on items (i_price);

在order表的o_id和o_date列上创建组合索引。

create index idx_o_i_d on orders (o_id, o_date);

使用create unique index语句在orders表中为o_id列创建唯一索引。

create unique index o_u_id on orders (o_id);

2. 查看索引

通过使用select语句查询sys_indexes视图查看相关索引索引。

示例

select * from pg_indexes where schemaname=\'public\';

3. 修改索引

使用alter index语句可以o_u_id索引的相关属性信息。

示例

使用alter index语句将o_u_id索引重命名为indx_rename_u_id:

alter index o_u_id rename to indx_rename_u_id;

使用alter index语句将indx_rename_u_id设置索引填充因子

alter index indx_rename_u_id set (fillfactor = 60);

4. 重建索引

使用reindex index语句重建indx_i_price索引:

reindex index indx_c_name;

使用reindex table语句重建表上所有索引:

reindex table orders;

5. 删除索引

使用 drop index 语句删除索引:

drop index indx_rename_u_id;

📝 总结:KingbaseES在线平台的三大价值

  1. 快速验证能力:
    通过预置的12个行业场景模板,开发人员可在30分钟内完成POC测试,验证周期缩短75%。

  2. 深度调优训练场:
    提供完整的性能监控工具链,使DBA能够模拟生产级负载进行压力测试,优化方案验证效率提升5倍。

  3. 国产化替代加速器:
    内置Oracle语法转换器、迁移评估报告生成等功能,使异构数据库迁移成本降低60%。

立即体验:k8s入口,开启您的企业级数据库实战之旅!