检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
GaussDB中模式、用户和角色如何理解? 答:模式是对数据库做一个逻辑分割,所有的数据库对象都建立在模式下面。模式和用户是弱绑定的,弱绑定是指虽然创建用户的同时会自动创建一个同名模式,但用户也可以单独创建模式,并且为用户指定其他的模式。 用户和角色是用来控制对数据库的访问。一个
全表关联UPDATE时,如何提升效率? 答:可以通过消除SubPlan的方式提升效率。如下两种UPDATE的方式,方式一的执行计划中存在一个SubPlan,方式二消除了这个SubPlan后修改速度大大增加。 前置操作,建表和插入数据。 --建表。 gaussdb=# CREATE
复制表适用于哪些场景? 答:复制表是将表中的所有数据复制到集群中每一个DN实例上,即每个DN一个副本 。如下场景建议使用复制表: 较小的表(大小2G以下),如星型结构中的维度数据表。 不会频繁插入/更新/删除数据的表。 经常进行简单查询的表。复杂查询(条件含LIKE或NOT LI
PROCEDURE命令,系统管理员默认拥有该权限。针对所要修改属性的不同,还有以下权限约束: 如果存储过程中涉及对临时表相关的操作,则无法使用ALTER PROCEDURE。 修改存储过程的所有者或修改存储过程的模式,当前用户必须是该存储过程的所有者或者系统管理员,且该用户是新所有者角色的成员。
ora_test_db DBCOMPATIBILITY 'ORA'; --切换数据库。 gaussdb=# \c ora_test_db --创建拥有系统管理员权限的用户。 ora_test_db=# CREATE USER user1 WITH SYSADMIN PASSWORD '********';
DROP PROCEDURE 功能描述 删除已存在的存储过程。 注意事项 仅初始用户有权对初始用户的存储过程进行DROP操作。 语法格式 DROP PROCEDURE [ IF EXISTS ] procedure_name; 参数说明 IF EXISTS 如果指定的存储过程不存
DROP SECURITY LABEL 功能描述 DROP SECURITY LABEL语句可用于删除当前数据库中的安全标签。 注意事项 初始用户、具有SYSADMIN权限的用户或者继承了内置角色gs_role_seclabel权限的用户有权限删除安全标签。 语法格式 1 DROP
MARK BUCKETS 功能描述 用于扩容工具通知内核哪些bucket已经完成搬迁。 注意事项 仅支持在hashbucket扩容期间调用。只支持管理员权限用户调用。 语法格式 1 MARK BUCKETS (bucketlist) FINISH FROM datanode_name
ROLLBACK TO SAVEPOINT 功能描述 ROLLBACK TO SAVEPOINT用于回滚到一个保存点,隐含地删除所有在该保存点之后建立的保存点。 回滚所有指定保存点建立之后执行的命令。保存点仍然有效,并且需要时可以再次回滚到该点。 注意事项 不能回滚到一个未定义的保存点,语法上会报错。
简单查询 简单查询是指从一个或多个表或视图中检索一个或多个列数据的操作。 以下示例作为一个典型的简单查询,展示在指定的表中查询部分信息和全部信息的操作。 --建表并插入数据。 gaussdb=# CREATE TABLE student( sid INT PRIMARY KEY
分页查询 语法如下: SELECT query_list FROM table_name [ LIMIT { [offset,] count | ALL } ] offset :表示从第几行向后开始。 count:表示向后查询几条数据。 ALL:表示向后查询所有的数据。 --建表并插入100条数据。
子查询 一个查询可以嵌套在另一个查询中,其结果作为另一个查询的数据来源或判断条件。其中外层查询也叫父查询,内层查询也叫子查询。 按照子查询的返回记录数分类可分为单行子查询,多行子查询。 按照子查询是否被执行多次分类可分为关联子查询,非关联子查询。 单行子查询 单行子查询操作符有>=、>、<=、<、<>。
数据倾斜查询最佳实践 快速定位查询存储倾斜的表 父主题: 最佳实践
PL/SQL语言函数 PL/SQL是一种可载入的过程语言。 用PL/SQL创建的函数可以被用在任何可以使用内建函数的地方。例如,可用于创建复杂条件的计算函数、定义操作符以及索引表达式。 SQL被大多数数据库用作查询语言。它是可移植的并且容易学习。但是每一个SQL语句必须由数据库服务器单独执行。
交换分区 用户可以使用交换分区的命令来将分区与普通表的数据进行交换。交换分区可以快速将数据导入/导出分区表,实现数据高效加载的目的。在业务迁移的场景,使用交换分区比常规导入会快很多。交换分区可以通过指定分区名或者分区值来进行。 执行交换分区命令会使得Global索引失效,可以通过UPDATE
清空分区 用户可以使用清空分区的命令来快速清空分区的数据。与删除分区功能类似,区别在于清空分区只会删除分区中的数据,分区的定义和物理文件都会保留。清空分区可以通过指定分区名或者分区值来进行。 执行清空分区命令会使得Global索引失效,可以通过UPDATE GLOBAL INDE
分割分区 用户可以使用分割分区的命令来将一个分区分割为两个或多个新分区。当分区数据太大,或者需要对有MAXVALUE的范围分区/DEFAULT的列表分区新增分区时,可以考虑执行该操作。分割分区可以指定分割点将一个分区分割为两个新分区,也可以不指定分割点将一个分区分割为多个新分区。
移动分区 用户可以使用移动分区的命令来将一个分区移动到新的表空间中。移动分区可以通过指定分区名或者分区值来进行。 使用ALTER TABLE MOVE PARTITION可以对分区表移动分区。 例如,通过指定分区名将范围分区表range_sales的分区date_202001移动到表空间tb1中。
常规锁设计 分区表通过表锁+分区锁两重设计,在表和分区上分别施加8个不同级别的常规锁,来保证DQL、DML、DDL并发过程中的合理行为控制。下表给出了不同级别锁的相容行为,标记为√的两种常规锁互不阻塞,可以并行。 表1 常规锁相容行为 - ACCESS_SHARE ROW_SHARE
字符集 GaussDB数据库支持指定数据库、模式、表或列的字符集,支持的范围如下。 表1 字符集列表 MySQL数据库 GaussDB数据库 utf8mb4 支持 gbk 支持 gb18030 支持 目前GaussDB对不属于当前字符集的非法字符未执行严格的编码逻辑校验,可能导致