一、简介
高斯数据库是华为开发的企业级分布式关系型数据库,兼容 PostgreSQL 语法,具有高可用、高性能、强扩展的特点,适用于 OLTP 和 OLAP 场景。
二、安装与配置
1. 安装步骤
-
下载:获取高斯数据库安装包
-
解压 :
tar -zxvf gaussdb-x.x.x.tar.gz -
安装 :
bash# 单机版 sh install.sh --mode single -D /path/to/data -R /path/to/install --start # 集群版(需配置hosts文件) sh install.sh --mode cluster -X config.xml
-
环境变量 :将二进制路径加入 PATH
bashecho 'export PATH=/path/to/gaussdb/bin:$PATH' >> ~/.bashrc source ~/.bashrc
三、连接数据库
1. 使用 gsql 命令行工具
bash
# 基本连接
gsql -d 数据库名 -U 用户名 -h 主机 -p 端口 -W
# 示例
gsql -d postgres -U myuser -h 127.0.0.1 -p 5432 -W
2. 使用 DAS (数据管理服务)
- 登录云平台管理控制台
- 选择 "数据库 > GaussDB",点击目标实例的 "登录"
- 输入用户名和密码,进入管理界面
3. 使用应用程序连接 (以 Python 为例)
python
# 安装驱动
pip install psycopg2-binary
# 连接代码
import psycopg2
conn = psycopg2.connect(
dbname="mydb",
user="myuser",
password="mypassword",
host="127.0.0.1",
port="5432"
)
四、基本操作
1. 创建数据库与用户
sql
-- 创建数据库
CREATE DATABASE mydb;
-- 创建用户(普通用户)
CREATE USER myuser WITH PASSWORD 'mypassword';
-- 创建超级用户
CREATE USER admin WITH SUPERUSER CREATEDB CREATEROLE;
-- 授权
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
2. 创建表与基本操作
sql
-- 创建表
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
salary NUMERIC(10, 2),
hire_date DATE
);
-- 插入数据
INSERT INTO employees (name, salary, hire_date)
VALUES ('Alice', 8000.00, '2023-01-01');
-- 查询数据
SELECT id, name, salary FROM employees WHERE salary > 5000;
-- 更新数据
UPDATE employees SET salary = salary * 1.1 WHERE department = 'Sales';
-- 删除数据
DELETE FROM employees WHERE hire_date < '2020-01-01';
五、高级特性
1. 分区表 (提升大数据量查询性能)
sql
-- 创建范围分区
CREATE TABLE sales (
sale_id INT,
sale_date DATE,
amount NUMERIC
) PARTITION BY RANGE (sale_date);
-- 添加分区
ALTER TABLE sales ADD PARTITION p2023q1 VALUES LESS THAN ('2023-04-01');
2. 索引优化
sql
-- 创建普通索引
CREATE INDEX idx_employees_name ON employees (name);
-- 创建复合索引
CREATE INDEX idx_orders_customer_time ON orders (customer_id, order_time);
-- 创建唯一索引
CREATE UNIQUE INDEX idx_products_sku ON products (sku);
3. 数据导入导出
① 使用 gsql 的 COPY 命令 (高效批量操作)
sql
-- 导出数据到文件
COPY employees TO '/path/to/employees.csv' DELIMITER ',' CSV HEADER;
-- 从文件导入数据
COPY employees FROM '/path/to/employees.csv' DELIMITER ',' CSV HEADER;
② 使用 gs_dump/gs_restore (逻辑备份恢复)
bash
# 备份数据库
gs_dump -U myuser -d mydb -f backup.sql
# 恢复数据库
gs_restore -U myuser -d newdb backup.sql
六、性能优化建议
-
选择合适的分布策略:
- 大表使用哈希分布 (如按 user_id),避免数据倾斜
- 小表 (维度表) 使用复制分布,减少 JOIN 时跨节点传输
-
合理使用分区:
- 按时间、地域等高频查询条件分区
- 定期清理历史分区,提升查询性能
-
优化查询性能:
- 避免全表扫描,确保查询使用索引
- 使用并行查询:
SET max_parallel_workers_per_gather = 4; - 对大表使用批量操作 (COPY 替代 INSERT),性能提升可达 100 倍
七、常见问题处理
1. 连接问题
- 无法连接:检查端口是否开放 (默认 5432),是否配置了安全组规则
- 权限不足:使用超级用户登录,检查用户权限 openGauss
2. 性能问题
-
查询慢 :使用
EXPLAIN分析执行计划,检查是否缺少索引 -
锁竞争 :查询锁等待:
sqlSELECT * FROM pg_locks WHERE NOT granted;
八、总结
高斯数据库使用流程总结:
- 安装配置 → 2. 连接数据库 (gsql/DAS) → 3. 创建数据库和用户 → 4. 设计表结构 → 5. 数据操作 (CRUD) → 6. 性能优化 (索引 / 分区) → 7. 定期备份
下一步建议:
- 小型应用:使用单机版,熟悉基本 SQL 操作
- 生产环境:使用集群版,配置高可用和定期备份
- 复杂查询:学习分区和索引优化技术,提升大数据量处理能力