返回首页

gbase数据、南大通用产品文档:GBase8a全文索引数据路径说明

更新日期:2024年09月11日

语法说明
GBase UP 全文索引提供用户指定索引数据存放路径的功能,其句法表达式为:
INDEX_DATA_PATH='path',例如:
INDEX_DATA_PATH = “home/fti/”
如果用户创建索引的时候未指定索引数据存放路径,则索引数据会保存在
{datadir}/{DATABASE}/目录下,
数据库的metadata 文件夹中
({datadir}是对应集群
配置文件下的参数),如C00001.FTD。
当使用INDEX_DATA_PATH='path'句法创建索引后,
则在该指定目录下会创建类似
为INSTANCE_DATABASE_TABLE_CXXXXX.FTD 的索引目录。
索引目录名称规则说明

INSTANCE:建立全文索引实例名称。

DATABASE: 建立全文索引表所在数据库名称。

TABLE:建立全文索引表名称。

CXXXXX:建立全文索引列编号。

FTD:全文索引目录标志。
注意
数据库的某些操作可能会导致索引数据目录名称变化,例如使用RENAME
TABLE 语法更改全文索引表名称时,
其对应的索引数据目录也会自动变更。
例如
原表名为FtiDB.FtiTable,
索引原路径为FtiInstance_FtiDB_FtiTable _C00001.FTD,
用户通过RENAME TABLE 句法将表名更改为FtiTableNew. FtiTableNew 则索引
数据目录名称就会自动由FtiInstance_FtiDB_FtiTable_C00001.FTD 变更为FtiInsta
nce_FtiDBNew_FtiTableNew_C00001.FTD。
示例

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 929
示例1:
gbase> CREATE TABLE sms (MB_No char(11),MB_Text varchar(1000) DEFAULT NULL, FULLTEXT
idx_t (MB_Text) INDEX_DATA_PATH='/tmp');
Query OK, 0 rows affected

# cd /tmp
# ll
total 48
-rwxr-xr-x 1 root root 3976 Apr 8 14:45 clear.sh
-rw-r--r-- 1 root root 500 Apr 8 14:55 corosync.conf
srwxrwxrwx 1 gbase gbase 0 Apr 16 14:41 gbase_8a_5050.sock
drwxrwx--x 2 gbase gbase 4096 Apr 16 17:12 gbase_fti_sms_C00001.FTD
drwxrwx--x 2 gbase gbase 4096 Apr 16 17:12 gbase_fti_sms_n1_C00001.FTD
drwxrwx--x 2 gbase gbase 4096 Apr 16 17:12 gbase_fti_sms_n2_C00001.FTD
srwxrwxrwx 1 gbase gbase 0 Apr 16 14:41 gcluster_5258.sock
-rw-r--r-- 1 root root 2251 Apr 8 14:51 gcluster_rpm.log
-rw-r--r-- 1 root root 10643 Apr 8 14:51 monit.conf.1
drwx------ 2 gdm gdm 4096 Mar 14 13:35 orbit-gdm
drwx------ 2 gdm gdm 4096 Mar 14 13:35 pulse-11b2vYxiCGS5
drwx------. 2 root root 4096 Dec 30 10:52 pulse-Wn0xNWIXZPfB

可以看到,gbase_fti_sms_C00001.FTD 是生成的数据索引目录。
示例2:
gbase> RENAME TABLE sms TO smsnew;
Query OK, 0 rows affected

$ cd /tmp
$ ll
总计 44
drwxrwx--x 3 fti fti 4096 06-12 17:12 dat
drwxrwxr-x 2 fti fti 4096 06-12 16:44 fti
srwxrwxrwx 1 gbase gbase 0 05-18 17:19 gbase_8a_5050.sock
srwxrwxrwx 1 fti fti 0 06-12 17:12 gbase_8a_6080.sock
drwxrwx--x 2 fti fti 4096 06-12 16:28 gbase_fti_smsnew_C00001.FTD
srwxrwxrwx 1 gbase gbase 0 05-18 17:19 gcluster_5258.sock
sms
表名修改为
smsnew ,可以看到之前的索引数据目录由
gbase_fti_sms_C00001.FTD 变成了 gbase_fti_smsnew_C00001.FTD

使用 BULKBIND_THREAD_CNT 配置参数来设置批量更新的并发任务数。通过设置此参
数来支持服务器端通过多任务的方式执行大量数据的批量更新功能。

onconfig.std 值
BULKBIND_THREAD_CNT 10

大于等于10;建议设置为略小于配置的 CPU VP 数。缺省值为 10。
单位
批量更新的并发任务数。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 49 -

生效
编辑 onconfig 文件并重启数据库服务器之后。

ifx_lvar_alloc() 函数指定当访存 lvarchar 数据时,是否分配内存。

语法
mint ifx_lvar_alloc(mintalloc)
mint alloc;
alloc
分配标志的值;为 1 或 0

用法
当设置标志为 1 时,ESQL/C 自动地执行此内存分配。当您不确定 SELECT 语句返
回的数据量时,
在 SELECT 语句前,
您可使用标志值 1。
当设置标志为 0 时,
ESQL/C 不
自动地执行此内存分配。

返回代码
0
函数成功。
<0
函数不成功,且返回值指示错误的原因。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 811 -