首页 / 资讯中心 / 文章详情

GaussDB基础命令大全:从连接到高级查询

GaussDB基础命令大全:从连接到高级查询 ★ FEATURED ARTICLE
1. GaussDB入门你需要了解的基础命令作为一名长期与数据库打交道的开发者我接触过各种数据库系统而GaussDB作为华为推出的企业级分布式数据库在性能和可靠性方面给我留下了深刻印象。今天我想分享一些在实际工作中最常用的GaussDB命令这些命令构成了日常数据库管理的基础骨架。首先连接数据库是最基本的操作。在Linux环境下我们通常使用gsql客户端工具连接GaussDBgsql -d 数据库名 -U 用户名 -W 密码 -h 主机地址 -p 端口号这个命令中的每个参数都很关键-d指定要连接的数据库名称-U指定连接用户名-W后面跟着密码也可以不加-W参数系统会交互式提示输入密码-h数据库服务器地址-p数据库服务端口号默认5432提示生产环境中建议将密码放在.pgpass文件中而不是直接在命令行输入这样更安全。连接成功后你会看到类似这样的提示符gsql ((GaussDB Kernel V500R001C20 build 50b0e5f7) compiled at 2021-11-20 15:00:00 commit 0 last mr ) Non-SSL connection (SSL connection is recommended when requiring high-security) Type help for help. postgres#1.1 数据库基本操作创建新数据库CREATE DATABASE mydb WITH ENCODINGUTF8 OWNERusername TEMPLATEtemplate0;查看所有数据库\l切换数据库\c 数据库名删除数据库DROP DATABASE 数据库名;2. 表操作与管理命令作为数据库的核心对象表的管理是日常工作的重点。以下是我在GaussDB表操作中最常用的命令。2.1 创建表与修改表结构创建基本表CREATE TABLE employees ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, age INT, salary DECIMAL(10,2), hire_date DATE DEFAULT CURRENT_DATE );查看表结构\d 表名添加列ALTER TABLE employees ADD COLUMN department VARCHAR(50);修改列类型ALTER TABLE employees ALTER COLUMN salary TYPE NUMERIC(12,2);2.2 索引管理创建索引CREATE INDEX idx_employee_name ON employees(name);查看表上的所有索引\di 表名删除索引DROP INDEX idx_employee_name;注意GaussDB支持多种索引类型包括B-tree、Hash、GIN等选择适合查询模式的索引类型很重要。3. 数据查询与操作命令3.1 基本CRUD操作插入数据INSERT INTO employees (name, age, salary) VALUES (张三, 30, 15000.00);批量插入INSERT INTO employees (name, age, salary) VALUES (李四, 28, 12000.00), (王五, 35, 18000.00);查询数据SELECT * FROM employees WHERE age 25 ORDER BY salary DESC;更新数据UPDATE employees SET salary salary * 1.1 WHERE department 研发部;删除数据DELETE FROM employees WHERE id 100;3.2 高级查询技巧分组统计SELECT department, AVG(salary) as avg_salary, COUNT(*) as emp_count FROM employees GROUP BY department HAVING COUNT(*) 5;多表连接SELECT e.name, e.salary, d.department_name FROM employees e JOIN departments d ON e.department_id d.id WHERE e.salary 10000;窗口函数SELECT name, salary, RANK() OVER (PARTITION BY department ORDER BY salary DESC) as dept_rank FROM employees;4. 系统管理与维护命令4.1 用户与权限管理创建用户CREATE USER dev_user WITH PASSWORD secure_password;授予权限GRANT SELECT, INSERT ON employees TO dev_user;查看用户权限\du4.2 备份与恢复逻辑备份导出gs_dump -U username -d dbname -f backup.sql逻辑恢复gsql -U username -d dbname -f backup.sql物理备份需要管理员权限gs_basebackup -D /path/to/backup -h primary_host -p port -U replication_user4.3 性能监控与调优查看正在运行的查询SELECT * FROM pg_stat_activity;查看表统计信息SELECT * FROM pg_stat_user_tables;分析查询计划EXPLAIN ANALYZE SELECT * FROM employees WHERE salary 10000;5. 实用技巧与常见问题5.1 命令行快捷操作在gsql命令行中有一些非常实用的元命令查看所有命令帮助\?查看SQL命令帮助\h查看所有表\dt查看所有视图\dv查看所有序列\ds5.2 常见问题解决连接数不足-- 查看当前连接数限制 SHOW max_connections; -- 临时增加连接数需要重启生效 ALTER SYSTEM SET max_connections 500;表空间不足-- 查看表空间使用情况 SELECT pg_size_pretty(pg_total_relation_size(表名)); -- 扩展表空间 ALTER TABLESPACE tablespace_name RESIZE 10G;5.3 性能优化建议定期执行ANALYZE更新统计信息ANALYZE 表名;对大表进行VACUUM维护VACUUM (VERBOSE, ANALYZE) 表名;对于频繁更新的表考虑设置适当的填充因子ALTER TABLE 表名 SET (fillfactor 70);使用EXPLAIN ANALYZE分析慢查询并根据结果创建适当的索引6. 进阶功能与扩展命令6.1 分区表管理创建范围分区表CREATE TABLE sales ( id SERIAL, sale_date DATE, amount DECIMAL(10,2) ) PARTITION BY RANGE (sale_date); -- 创建分区 CREATE TABLE sales_q1 PARTITION OF sales FOR VALUES FROM (2023-01-01) TO (2023-04-01);查看分区信息SELECT * FROM pg_partitions WHERE tablename sales;6.2 物化视图创建物化视图CREATE MATERIALIZED VIEW mv_emp_stats AS SELECT department, AVG(salary) as avg_salary FROM employees GROUP BY department;刷新物化视图REFRESH MATERIALIZED VIEW mv_emp_stats;6.3 并行查询控制设置并行查询参数SET max_parallel_workers_per_gather 4;查看查询并行度EXPLAIN ANALYZE SELECT * FROM large_table WHERE condition;7. 与其他工具的集成7.1 使用psql客户端虽然gsql是GaussDB的专用客户端但标准的psql客户端也能连接GaussDBpsql -h 主机名 -p 端口 -U 用户名 -d 数据库名7.2 数据迁移从PostgreSQL迁移到GaussDBpg_dump -h pg_host -U pg_user -d pg_db -f pg_dump.sql gsql -h gaussdb_host -U gaussdb_user -d gaussdb_db -f pg_dump.sql7.3 使用Docker运行GaussDB启动GaussDB容器docker run --name gaussdb -e GS_PASSWORDmysecretpassword -p 5432:5432 -d swr.cn-north-4.myhuaweicloud.com/kunpeng/gaussdb:latest8. 安全相关命令8.1 SSL连接配置启用SSL连接ALTER SYSTEM SET ssl on;配置SSL证书ALTER SYSTEM SET ssl_cert_file /path/to/server.crt; ALTER SYSTEM SET ssl_key_file /path/to/server.key;8.2 审计功能启用审计ALTER SYSTEM SET audit_enabled on;查看审计日志SELECT * FROM pg_query_audit(2023-01-01 00:00:00, 2023-12-31 23:59:59);9. 高可用与复制9.1 主备复制配置查看复制状态SELECT * FROM pg_stat_replication;提升备库为主库gs_ctl promote -D /path/to/data9.2 负载均衡配置连接池ALTER SYSTEM SET pooler_port 5433;10. 版本与兼容性查看GaussDB版本SELECT version();检查PostgreSQL兼容性SELECT * FROM pg_extension WHERE extname dolphin;在实际工作中我发现GaussDB的命令集虽然与PostgreSQL高度兼容但在企业级功能上有很多增强。掌握这些常用命令后配合GaussDB Manager等图形化管理工具可以大幅提高数据库管理效率。对于复杂的企业应用场景建议深入研究GaussDB的分布式特性和高级功能如分片、分布式事务等。
阅读完成 · 觉得有帮助?
咨询建站