求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 

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索引
513 次浏览
4次  

在本教程中,您将学习如何定义全文索引,以便在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元





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



513 次浏览
4次
 捐助