ALTER TABLE 语句更改表的属性但不影响数据时,数据库服务器将使用快速变更算法.
使用ALTER TABLE 语句执行以下操作时数据库服务器使用快速变更算法:
- 更改下一扩展数据块大小
- 添加或删除约束
- 更改表的锁定方式
- 不修改列类型而更改唯一索引属性
使用快速变更算法时,数据库服务器对表的锁定只保持很短的时间。在某些情况下,数据库服务器锁定系统目录表只是为了更改属性。无论哪种情况,无法查询此表的时间均很短。
ALTER TABLE 语句更改表的属性但不影响数据时,数据库服务器将使用快速变更算法.
使用ALTER TABLE 语句执行以下操作时数据库服务器使用快速变更算法:
使用快速变更算法时,数据库服务器对表的锁定只保持很短的时间。在某些情况下,数据库服务器锁定系统目录表只是为了更改属性。无论哪种情况,无法查询此表的时间均很短。
数据库服务器使用慢速变更算法来处理ALTER TABLE语句时,其他用户可能会长时间无法使用该表。
基于以下原因,慢速变更时表可能不可用:
由于数据库服务器复制表数据以将该表转换为新定义,因此慢速变更操作需要的空间至少为原始表大小的两倍与日志空间之和。
最后更新:2024-04-07
版本号使用:
v8.8_3503x1
v8.8_3331x12
Dockerfile
FROM scratch
ADD v8.8_3503x1_x64.tar.gz /
EXPOSE 9088
CMD /start.sh
注:不同数据库版本的ADD 文件名称不一样。
内连接(INNER JOIN)是最常用的连接类型之一,它根据两个或多个表之间的共同列值来联接这些表。在内连接中,只有在连接的表之间有匹配的值时,才会返回结果。
内加接语法示例:
-- 基中 INNER 关键字 可省略
select *
from tableft INNER JOIN tabright
ON tableft.col1 = tabright.col1;
获取实例初始化时间,通过rootdbs的创建时间来确定
-- 获取实例初始化时间(rootdbs创建时间)
SELECT dbinfo('utc_to_datetime',d.created) AS created
FROM sysmaster:sysdbstab d
WHERE dbsnum = 1;
GBase 8s数据库的交互式工具无历史执行语句,但我们知道Linux操作系统本身自带历史执行语句功能(上下翻页和history),我们可以使用调用shell脚本的方式,使用dbaccess加上历史执行语句功能:
脚本内容如下:放置于$GBASEDBTDIR/bin目录下,并加上执行权限
Kettle默认只支持使用mysql/oracle/sqlserver等数据库为资源库,若要使用GBase 8s为资源库,需要从其它资源库迁移相应的结构及数据。
以下为从mysql资源库迁移为GBase 8s资源库的表结构说明,供参考:
序号 | 字段名称 | 字符类型 | 允许空 | 缺省值 | 字段描述 |
---|---|---|---|---|---|
1 | id_cluster | INT8 | 否 | 集群ID | |
2 | name | VARCHAR(255) | 是 | 集群名称 | |
3 | base_port | VARCHAR(255) | 是 | 端口 | |
4 | sockets_buffer_size | VARCHAR(255) | 是 | 缓冲大小 | |
5 | sockets_flush_interval | VARCHAR(255) | 是 | 刷新间隔 | |
6 | sockets_compressed | SMALLINT | 是 | 是否压缩 | |
7 | dynamic_cluster | SMALLINT | 是 | 是否动态集群 |
如下图,在data-integration\lib下添加连接GBase 8s数据库的驱动gbasedbtjdbc.jar(视Server版本,增加匹配的驱动)
数据库JDBC版本:GBase 8s JDBC V8.8 3.3.0_3
Mybatis-Plus版本: 3.4.3.2
JDK版本: jdk1.8.0_201
本示例使用的环境如下:
通过apt查找确认unixODBC及unixODBC-devel已经安装
[root@localhost ~]# rpm -qa unixODBC unixODBC-devel
unixODBC-devel-2.3.1-14.el7.x86_64
unixODBC-2.3.1-14.el7.x86_64