工具对接-JDBC配置
目前,GaussDB200相关的第三方工具都是通过JDBC进行连接的,此部分将介绍工具配置时的注意事项。连接参数【关注】第三方工具通过JDBC连接GaussDB200时,JDBC向GaussDB200发起连接请求,会默认添加以下配置参数,详见JDBC代码ConnectionFactoryImpl类的
数据库对象设计-视图和关联表设计
视图设计【建议】除非视图之间存在强依赖关系,否则不建议视图嵌套。【建议】视图定义中尽量避免排序操作。关联表设计【建议】表之间的关联字段应该尽量少。【建议】关联字段的数据类型应该保持一致。【建议】关联字段在命名上,应该可以明显体现出关联关系。例如,采用同样名称来命名。
数据库对象设计-约束设计
DEFAULT和NULL约束【建议】如果能够从业务层面补全字段值,那么,就不建议使用DEFAULT约束,避免数据加载时产生不符合预期的结果。【建议】给明确不存在NULL值的字段加上NOTNULL约束,优化器会在特定场景下对其进行自动优化。【建议】给可以显式命名的约束显式命名。除了NOTNULL和DE
数据库对象设计-字段设计
选择数据类型在字段设计时,基于查询效率的考虑,一般遵循以下原则:【建议】尽量使用高效数据类型。选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMREIC。【建议】当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。【建议】对于字符串数据,建议
数据库对象设计-表设计
GaussDB200是分布式架构。数据分布在各个DN上。总体上讲,良好的表设计需要遵循以下原则:【关注】将表数据均匀分布在各个DN上。数据均匀分布,可以防止数据在部分DN上集中分布,从而导致因存储倾斜造成集群有效容量下降。通过选择合适的分布列,可以避免数据倾斜。【关注】将表的扫描压力均匀分散在各个D
数据库对象设计-Database和Schema设计
GaussDB200中可以使用Database和Schema实现业务的隔离,区别在于Database的隔离更加彻底,各个Database之间共享资源极少,可实现连接隔离、权限隔离等,Database之间无法直接互访。Schema隔离的方式共用资源较多,可以通过grant与revoke语法便捷地控制不
开发设计建议-数据库对象命名
数据库对象命名需要满足约束:长度不超过63个字符,以字母或下划线开头,中间字符可以是字母、数字、下划线、$、#。【建议】避免使用保留或者非保留关键字命名数据库对象。说明:可以使用select*frompg_get_keywords()查询GaussDB200的关键字,或者在关键字章节中查看。【建议】
开发设计建议-开发设计建议概述
本开发设计建议约定数据库建模和数据库应用程序开发过程中,应当遵守的设计规范。依据这些规范进行建模,能够更好的契合GaussDB200的分布式处理架构,输出更高效的业务SQL代码。本开发设计建议中所陈述的“建议”和“关注”含义如下:建议:用户应当遵守的设计规则。遵守这些规则,能够保证业务的高效运行;违
开发者指南-开发设计建议
开发设计建议开发设计建议概述数据库对象命名数据库对象设计工具对接SQL编写
其他操作-创建和管理定时任务
背景信息当客户在使用数据库过程中,如果白天执行一些耗时比较长的任务(例如:统计数据汇总之类或从其他数据库同步数据的任务),会对正常的业务有性能影响,所以客户经常选择在晚上执行,无形中增加了客户的工作量。因此数据库兼容Orcale数据库中定时任务的功能,可以由客户创建定时任务,当任务时间点到达后可以自
其他操作-创建和管理序列
背景信息序列Sequence是用来产生唯一整数的数据库对象。序列的值是按照一定规则自增的整数。因为自增所以不重复,因此说Sequence具有唯一标识性。这也是Sequence常被用作主键的原因。通过序列使某字段成为唯一标识符的方法有两种:一种是声明字段的类型为序列整型,由数据库在后台自动创建一个对应
其他操作-创建和管理视图
背景信息当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图,以便解决这个问题。视图与基本表不同,不是物理上实际存在的,是一个虚表。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图
其他操作-创建和管理索引
背景信息索引可以提高数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。所以是否要为表增加索引,索引建立在哪些字段上,是创建索引前必须要考虑的问题。需要分析应用程序的业务处理、数据使用、经常被用作查询的条件或者被要求排序的字段来确定是否建立索引。索引建立在数据库表中的某些列上。因此,在创建
其他操作-创建和管理分区表
背景信息GaussDB200数据库支持的分区表为范围分区表。范围分区表:将数据基于范围映射到每一个分区,这个范围是由创建分区表时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期,例如将销售数据按照月份进行分区。分区表和普通表相比具有以下优点:改善查询性能:对分区对象的查询可以仅搜
其他操作-创建和管理schema
背景信息schema又称作模式。通过管理schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的schema下而不引起冲突。管理schema包括:创建schema、使用schema、删除schema、设置schema的搜索路径以及
数据库使用-查看系统表
除了创建的表以外,数据库还包含很多系统表。这些系统表包含集群安装信息以及GaussDB200上运行的各种查询和进程的信息。可以通过查询系统表来收集有关数据库的信息。“系统表和系统视图”中每个表的说明指出了表是对所有用户可见还是只对初始化用户可见。必须以初始化用户身份登录才能查询只对初始化用户可见的表
创建和管理表-删除表中数据
在使用表的过程中,可能会需要删除已过期的数据,删除数据必须从表中整行的删除。SQL不能直接访问独立的行,只能通过声明被删除行匹配的条件进行。如果表中有一个主键,用户可以指定准确的行。用户可以删除匹配条件的一组行或者一次删除表中的所有行。使用DELETE命令删除行,如果删除表customer_t1中所
创建和管理表-查看数据
使用系统表pg_tables查询数据库所有表的信息。SELECT*FROMpg_tables;使用gsql的\d+命令查询表的属性。\d+customer_t1;执行如下命令查询表customer_t1的数据量。SELECTcount(*)FROMcustomer_t1;执行如下命令查询表custo
创建和管理表-更新表中数据
修改已经存储在数据库中数据的行为叫做更新。用户可以更新单独一行,所有行或者指定的部分行。还可以独立更新每个字段,而其他字段则不受影响。使用UPDATE命令更新现有行,需要提供以下三种信息:表的名字和要更新的字段名字段的新值要更新哪些行SQL通常不会为数据行提供唯一标识,因此无法直接声明需要更新哪一行
创建和管理表-向表中插入数据
在创建一个表后,表中并没有数据,在使用这个表之前,需要向表中插入数据。本小节介绍如何使用INSERT命令插入一行或多行数据,及从指定表插入数据。如果有大量数据需要批量导入表中,请参考导入数据。背景信息服务端与客户端使用不同的字符集时,两者字符集中单个字符的长度也会不同,客户端输入的字符串会以服务端字