求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   模型库  
会员   
 


AI 智能化软件测试方法与实践
5月23-24日 上海+在线



人工智能.机器学习TensorFlow
5月22-23日 北京



图数据库与知识图谱
5月22-23日 北京
 
 

mysql教程
MySQL快速学习入门
MySQL是什么
MySQL安装
MySQL示例数据库
MySQL导入示例数据库
MySQL基础教程
MySQL查询数据
MySQL WHERE语句
MySQL插入数据
MySQL更新表数据
MySQL删除表数据
MySQL创建与删除数据库
MySQL创建表
MySQL修改表结构
MySQL重命名表
MySQL数据类型
高级部分
MySQL技巧
MySQL存储过程
MySQL视图
MySQL触发器
MySQL管理
MySQL全文搜索
MySQL函数
应用程序连接
MySQL+Node.js连接和操作
Python+MySQL连接和操作
 
 

定义MySQL全文搜索FULLTEXT索引
587 次浏览
6次  

在本教程中,您将学习如何定义全文索引,以便在MySQL中执行各种全文搜索。

在表的列中执行全文搜索之前,必须对其数据进行索引。 每当列的数据更改时,MySQL将重新创建全文索引。在MySQL中,全文索引是一种名称为FULLTEXT的索引。

MySQL支持对全文搜索启用列自动建立索引和重新索引数据。 MySQL 5.6或更高版本允许您为数据类型为MyISAM中的CHAR,VARCHAR或TEXT或InnoDB表类型的列定义全文索引。 请注意,自MySQL5.6版以来,MySQL支持InnoDB表的全文索引。

MySQL允许您在使用CREATE TABLE语句创建表或为现有表使用ALTER TABLE或CREATE INDEX语句时来定义FULLTEXT索引。

使用CREATE TABLE语句定义FULLTEXT索引

通常,使用CREATE TABLE语句创建新表时,可以为列定义FULLTEXT索引,如下所示:

CREATE TABLE table_name(
column1 data_type,
column2 data_type,
column3 data_type,

PRIMARY_KEY(key_column),
FULLTEXT (column1,column2,..)
);

要创建FULLTEXT索引,请在FULLTEXT关键字之后的括号中放置逗号分隔列的列表。

以下语句创建一个名为posts的新表,该表具有包含post_content列的FULLTEXT索引。

CREATE TABLE posts (
id int(4) NOT NULL AUTO_INCREMENT,
title varchar(255) NOT NULL,
post_content text,
PRIMARY KEY (id),
FULLTEXT KEY post_content (post_content)
);

定义现有表的FULLTEXT索引

如果您想要在一个已存在表上定义全文索引,可以使用ALTER TABLE语句或CREATE INDEX语句。

使用ALTER TABLE语句定义FULLTEXT索引

以下语法使用ALTER TABLE语句定义FULLTEXT索引:

ALTER TABLE table_name
ADD FULLTEXT(column_name1, column_name2,…)

将table_name指定为一列或多列定义FULLTEXT索引的ADD FULLTEXT子句。

例如,可以在示例数据库(yiibaidb)的products表中为productDescription和productLine列定义FULLTEXT索引,如下所示:

ALTER TABLE products
ADD FULLTEXT(productDescription,productLine)

使用CREATE INDEX语句定义FULLTEXT索引

还可以使用CREATE INDEX语句为现有表创建FULLTEXT索引。 请参阅以下语法:

ALTER TABLE products
ADD FULLTEXT(productDescription,productLine)

以下语句为offices表的addressLine1和addressLine2列创建一个FULLTEXT索引。

CREATE FULLTEXT INDEX address
ON offices(addressLine1,addressLine2)

请注意,对于具有多行的表,首先将数据加载到没有FULLTEXT索引的表中,然后创建FULLTEXT索引,而不是将大量数据加载到具有现有FULLTEXT索引的表中,先加载数据后创建索引速度更快。

删除全文搜索列

要删除FULLTEXT索引,只需使用ALTER TABLE ... DROP INDEX语句删除索引。 例如,以下语句删除了offices表中名称为address的FULLTEXT索引,可使用以下语句 -

ALTER TABLE offices
DROP INDEX address;

在本教程中,我们向您展示了如何定义和删除支持MySQL全文搜索的FULLTEXT索引。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



587 次浏览
6次
 捐助