当前位置:网站首页 > 数据科学与大数据 > 正文

Gaussdb数据库数据类型(gaussdb数据库基本命令)



  • 与Oracle不同,GaUS5DB 数据库对象命名默认以小写形式保存在数据库中,使用
    时默认不区分大小写。如果需要区分大小马,需要在加双引号引用对象 名,不建议
    使用大小写敏感的命名。

  • 没有 DUAL 表,替代表 SYS_DUMMY,或直接 SELECT,不使用 FROM 关键字,如
    "SELECT 1’
  • 序列查询使用方式 select nextval(‘序列名’)
  • 没有伪列 rownum,分页查询 使用 Limit 关键字
  • 对象命名长度问题 GaussDB 绝大部分对象命名长度上限为 63 字节,Oracle 为 128
    字节(需注意对象迁移因命名长度导致失败)
  • ORACLE 会默认进行数据类型转换,GaussDB 当数字类型和字符类型进行数字运算
    会报错、两个字符类型运算会隐式转换,总之避免隐式的数据类型转换问题
    如 SELECT 1 + '1.25’在 Gaus5DB 会执行错误

  • 高斯的语法上多像Mysql。
客户端 CN GTM DN 1监听服务 2请求链接服务 3权限验证 4发送执行脚本请求 5分配服务线程 6请求分配全局事物 7返回全局事物 8脚本解析优化 9发送执行计划给DN 10启动线程执行脚本 11返回执行结果 12返回执行结果 12销毁线程 13关闭连接 14销毁线程

支持事务的启动、设置、提交、回滚。支持读已提交、读未提交两种隔离级别。采用MVCC两阶段锁方式,实现读写不堵塞。

可以采用客户端工具gspl、应用程序接口(JDBC、ODBC)、psql连接。

支持行存储或列存储。

存储方式 描述 优点 缺点 适用场景 行存 将表按行存储在磁盘 数据保存在一起,DML方便 查询时几列时所有数据都会涉及 1返回记录少,基于索引的点查询2DML 操作多 列存 将表按列存储在磁盘 1查询时只有涉及的列会被读取2高效投影3任何列都可以为索引 1DML麻烦2 选择后需重新组装 1关联、分组操作较多的统计分析查询2DML少3一次批量插入后查询4列较多5查询时涉及少数列

默认两个表空间pg_default、pg_global。也可以用户自定义表空间。

pg_default 默认表空间,存储非共享系统表、用户表、用户索引、临时表、临时索引、内部临时表 pg_global 共享表空间,存储共享系统表
  • 注意服务端与客户端字符集不一致问题,会导致输出结果与预期不一致。
  • 批量更新删除后,会在数据文件中产生大量的删除标记,查询工程中标记删除的数据也会扫描。所以批量更新删除反复的场景,定期执行VACUUM FULL 可以保持查询性能。
  • 表数据字典:pg_tables
  • 系统表:pg_user数据库中用户表、视图PG_STAT_ACTIVITY可以查看正在运行的查询语句、函数PG_TERMINATE_BACKEND可以根据线程ID结束会话。

支持范围分区:将数据基于范围映射到每一个分区。

通过序列使某字段成为唯一标识符有两种方法:
1声明字段类型为序列整型,由数据库在后台自动创建一个对应的Sequence
2使用CREATE SEQUENCE创建一个序列,然后将nextval(‘序列名’)函数值作为字段值。

兼容Oracle定时任务功能。
1.先建存储过程 create or replace procedure xxx;
2.建定时任务 call dbe_task_submit(‘call 存储过程名’,sysdate,‘interval “1 minute”’,a);
1分钟调用一次存储过程。


视图my_jobs可以查看当前用户创建的任务信息。
停止任务 call dbe_task.finish(1,true);
启动任务 call dbe_task.finish(1,false);
修改任务 call dbe_task_next_time(1,sysdate+1.0/24);改成1小时后执行
pg_job表存储了任务的权限信息。
参数job_queue_processes为0时表示关闭定时任务功能,大于0时表示其并发数。




与Mysql类似

  • 字符串
    • 定长:CHAR(n)、CHARCTRE(n)、NCHAR(n)、BPCHAR(n)
    • 变长:VARCHAR(n)、CHARACTER VARYING(n)、VARCHAR2(n)、NVARCHAR2(n)、TEXT
  • 数值类型
    • 整数类型:TINYINT、SMALLINT、INTEGER、BINARY_IN
      TEGER、BIGINT
    • 任意精度型:NUMERIC[(p[,s])],DECIMAL[(p[,s])] 、NUMBER[(p[,s])]
    • 序列整型:SMALLSERIAL、SERIAL、BIGSERIAL
    • 浮点类型:REAL,FLOAT4、DOUBLE PRECISION,FLOAT8、FLOAT[§]、BINARY_DOUBLE、DEC[(p[,s])]、INTEGER[(p[,s])]
  • 货币类型:money
  • 布尔类型:BOOLEAN
  • 二进制类型:BLOB、RAW、BYTEA
  • 日期/时间类型:DATE、TIME、TIMESTAMP
  • 几何类型
  • 网络地址类型
  • 位串类型
  • 文本搜索类型
  • UUID 类型
  • JSON/JSONB 类型
  • HLL 数据类型
  • 范围类型
  • 对象标识符类型
  • 伪类型
方式 描述 适用 Hash 通过Hash方式散列到集群中多有DN上 数据量大 Replication 每个DN全量复制 数据量小 Range 对指定列进行范围映射到不同DN,范围分布 根据范围部分 List 对指定列进行值规则映射,值规则分布 根据值类型分布

分布键的选择非常重要,选择不当会导致数据倾斜。

  • 分布键应该比较离散
  • 尽量不选在查询中存在常量过滤的字段
  • 尽量选择查询中关联条件字段

表分区为物理数据分散,表分布为逻辑分布。互不影响。

1.查询系统中长时间运行语句
SELECT current_timestamp - query_start AS runtime,datname,usename,query FROM pg_stat_activity WHERE state !=‘idle’ ORDER BY 1 DESC;
2.设置参数track_activities为on。
3.查看正在运行查询,查看视图pg_stat_activity
4.查询阻塞语句。
SELECT datname,usename,state,query FROM pg_stat_activity WHERE waiting = true;
5.查看阻塞信息。





 
  

DM8(达梦8)数据库安装和使用

到此这篇Gaussdb数据库数据类型(gaussdb数据库基本命令)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 进程控制块是描述进程状态和特性的数据结构,一个进程(进程控制块是专为用户进程设置的私有数据结构)2025-06-30 16:18:06
  • 大数据技术主要学什么科目(大数据技术都学什么)2025-06-30 16:18:06
  • 自动驾驶数据标注工作内容(为自动驾驶技术标注数据集)2025-06-30 16:18:06
  • 学术数据库网站(学术数据库网站有哪些)2025-06-30 16:18:06
  • 自动驾驶数据集如何收集(自动驾驶 数据集)2025-06-30 16:18:06
  • 大数据需要学什么知识(大数据需要学哪些)2025-06-30 16:18:06
  • 学术精品数据库(学术数据网站)2025-06-30 16:18:06
  • 小米手机数据迁移到vivo手机怎么操作(小米手机数据怎么导到vivo手机)2025-06-30 16:18:06
  • 小米数据迁移到新手机 微信记录没了(小米换机微信聊天记录迁移了但是没有显示)2025-06-30 16:18:06
  • rs485报文实例(rs485发送数据规则)2025-06-30 16:18:06
  • 全屏图片