返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

enable_memory_limit
参数说明:启用逻辑内存管理模块。
该参数属于POSTMASTER 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:布尔型

on 表示启用逻辑内存管理模块。

off 表示不启用逻辑内存管理模块。
默认值:on
注意:

若max_process_memory-shared_buffers-cstore_buffers-元数据少于2G,GBase 8c 强制把
enable_memory_limit 设置为off。
其中元数据是GBase 8c 内部使用的内存和部分并发参
数,如max_connections、thread_pool_attr、max_prepared_transactions 等参数相关。

当该值为off 时,不对数据库使用的内存做限制,在大并发或者复杂查询时,使用内存
过多,可能导致操作系统OOM 问题。

概述
要使用全文检索功能,首先需要建立一个表存储数据源信息,将要查询的文本内
容放到数据表中,然后将查询的文本内容列创建全文索引,当表中有内容更新时
也要更新索引,这样就可使用全文检索查询语法进行查询。具体语法包括创建索
引,更改索引,更新索引,删除索引和查询等操作,下面就以手机短信息检索的
例子进行说明,快速了解全文检索的使用方法,具体语法说明请参考后面章节。
示例
示例1:创建一个存储短信信息的表sms,包括手机号和短信内容两个字段。
gbase> CREATE TABLE sms (MB_No char(11), MB_Text varchar(1000)
DEFAULT NULL);
Query OK, 0 rows affected
示例2:创建全文索引,索引名称:idx_t,索引列:MB_Text。
gbase> CREATE FULLTEXT index idx_t ON sms(MB_Text);
Query OK, 0 rows affected
Records: 0
Duplicates: 0
Warnings: 0
插入示例数据信息
INSERT INTO sms VALUES('13023315123','南大开设java 编程培训班,每
周五晚上7:00-9:00 上课');
INSERT INTO sms VALUES('13521000123','天津大学开设考研培训班,学
期3 个月,每周六、日上课,欢迎报名,咨询40088800');
INSERT INTO sms value('13023315123','晚上去南大上英语课,在南大主楼

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
913
115 房间');
INSERT INTO sms VALUES('13023315123','周末去天津博物馆参观,在南
开区南门外大街公交车站集合。');
INSERT INTO sms VALUES('13023300023','本公司负责办理各种文*凭、

/件,绝对保真,电话联系:022-30088200。');
INSERT INTO sms VALUES('13023300023','明天去公司办公柜里查找合同
文件、档案和报销凭证。');
INSERT INTO sms VALUES('13988213328','周六上午9 点去水上公园,在
东门集合,对着天津天塔');
INSERT INTO sms VALUES('13323315181','南大通用数据技术股份有限公
司地址:
天津华苑产业区海泰发展六道6 号海泰绿色产业基地J 座(300384)');
INSERT INTO sms VALUES('13521015341','本小学为6 到12 岁儿童开办语
文、数学和英语培训班');
示例3:手动更新索引
gbase> UPDATE INDEX idx_t ON sms;
Query OK, 9 rows affected
示例4:查询建立的索引(包括全文索引)
gbase> SHOW INDEX FROM sms;
因为结果集列数较多,分为多行显示
+-------+------------+----------+--------------+-------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name |
+-------+------------+----------+--------------+-------------+
| sms
|
1 | idx_t
|
1 | MB_Text
|
+-------+------------+----------+--------------+-------------+
+-----------+-------------+----------+--------+
| Collation | Cardinality | Sub_part | Packed |
+-----------+-------------+----------+--------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
914
| NULL
|
NULL |
NULL | NULL
|
+-----------+-------------+----------+--------+
+------+------------+---------+
| Null | Index_type | Comment |
+------+------------+---------+
| YES
|
FULLTEXT
|
|
+------+------------+---------+
1 rows in set
示例5:搜索查询
gbase> SELECT COUNT(*) FROM sms WHERE contains(MB_Text, '南大通
用');
+----------+
| COUNT(*) |
+----------+
|
1 |
+----------+
1 row in set
示例6:查询包括天津或者培训班文字、并且不包含“水上”文字的数据条数:
gbase> SELECT COUNT(*) FROM sms WHERE contains(MB_Text, '"天津"
| "培训班" - "水上"');
+----------+
| COUNT(*) |
+----------+
|
5 |
+----------+
1 row in set

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
915
示例7:想具体查看一下135 开头的手机号收到的包括天津或者培训班词组、并
且不包含“水上”词组的短信内容:
gbase> SELECT LEFT(MB_Text,30) FROM sms WHERE
contains(MB_Text, '("天津" | "培训班") - "水上"') AND MB_No like '135%';
+--------------------------------------------------------------+
| LEFT(MB_Text,30)
|
+--------------------------------------------------------------+
| 本小学为6 到12 岁儿童开办语文、数学和英语培训班
|
| 天津大学开设考研培训班,学期3 个月,每周六、日上课,欢迎报名|
+--------------------------------------------------------------+
2 rows in set
示例8:搜索以南大词组开头的短信内容:
gbase> SELECT * FROM sms WHERE contains(MB_Text, '^"南大"');
+-------------+-----------------------------------------------------------------------------------
-------------------------------------------------+
| MB_No
| MB_Text
|
+-------------+-----------------------------------------------------------------------------------
-------------------------------------------------+
| 13023315123 | 南大开设java 编程培训班,每周五晚上7:00-9:00 上课
|
| 13323315181 | 南大通用数据技术股份有限公司地址:天津华苑产业区海泰
发展六道6 号海泰绿色产业基地J 座(300384)
|
+-------------+-----------------------------------------------------------------------------------
-------------------------------------------------+
2 rows in set
示例9:要查询制作假文凭的垃圾短信内容:
gbase> SELECT MB_Text FROM sms WHERE contains(MB_Text, '"文凭

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
916
"/2');
+--------------------------------------------------------------+
| MB_Text
|
+--------------------------------------------------------------+
| 明天去公司办公柜里查找合同文件、档案和报销凭证。
|
| 本公司办理各种文*凭、证/件,绝对保真,联系电话:022-30088200。|
+--------------------------------------------------------------+
2 rows in set
示例10:从上面信息中发现正常的短信也查询出来了,修改查询语句为:
gbase> SELECT MB_Text FROM sms WHERE contains(MB_Text,
'NEAR((文,凭),4,1)');
+--------------------------------------------------------------+
| MB_Text
|
+--------------------------------------------------------------+
| 本公司办理各种文*凭、证/件,绝对保真,联系电话:022-30088200。|
+--------------------------------------------------------------+
1 row in set
示例11:查询包含“南大”词组的短信并且按照no 倒排序。
gbase> SELECT MB_No AS no,MB_Text FROM sms WHERE
contains(MB_Text, '"南大"',1) ORDER BY no DESC;
+-------------+------------------------------------------------------------------+
| no
| MB_Text
|
+-------------+------------------------------------------------------------------+
| 13323315181 | 南大通用数据技术股份有限公司地址:天津华苑产业区海泰
发展六道6 号海泰绿色产业基地J 座(300384)
|
| 13023315123 | 晚上去南大上英语课,在南大主楼115 房间

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
917
|
| 13023315123 | 南大开设java 编程培训班,每周五晚上7:00-9:00 上课
|
+-------------+------------------------------------------------------------------+
3 rows in set

虽然在所有GBase 8s 产品中语法相同,但是结果输出的格式和显示取决于应用程序。本章
和编写高级 SELECT 语句中的示例如同您在 DB-Access 中使用“交互式查询语言”选项
时那样显示 SELECT 语句及输出。
大对象数据类型的输出
当发出包含大对象的 SELECT 语句时,DB-Access 按如下所示显示结果:

对于 TEXT 列或 CLOB 列,显示列的内容。

对于 BYTE 列,显示词 而不是实际值。

对于 BLOB 列,显示词 而不是实际值。

用户定义的数据类型的输出
DB-Access 使用特殊约定来显示包含复杂或不透明数据类型的列的输出。有关这些数据类
型的更多信息,请参阅《GBase 8s 数据库设计和实现指南》。

非缺省代码集的输出
可以发出查询 NCHAR 列而不是 CHAR 列,
或者 NVARCHAR 列而不是 VARCHAR 列
的 SELECT 语句。
有关 Global Language Support(GLS)的更多信息,请参阅《GBase 8s GLS 用户指南》。
有关将 NCHAR 和 NVARCHAR 数据类型与非缺省代码集配合使用的其它信息,请参阅
《GBase 8s 数据库设计和实现指南》和《GBase 8s SQL 参考指南》。