优秀的编程知识分享平台

网站首页 > 技术文章 正文

MySQL数据库全文索引详解

nanyue 2024-11-19 07:52:57 技术文章 3 ℃

全文索引概述

全文索引主要对字符串类型建立基于分词的索引,主要是基于CHAR、VARCHAR和TEXT的字段上,以便能够更加快速地查询数据量较大的字符串类型的字段。

全文索引以词为基础的,MySQL默认的分词是所有非字母和数字的特殊符号都是分词符。

MySQL从3.23.23版本开始支持全文索引,MySQL5.6以前只能在存储引擎为MyISAM的数据表上创建全文索引,5.6之后InnoDB开始支持全文索引(5.7之后支持中文全文索引) 。在默认情况下,全文索引的搜索执行方式为不区分大小写,如果全文索引所关联的字段为二进制数据类型,就以区分大小写的搜索方式执行。

全文索引的创建

创建表时定义索引

语法

CREATE TABLE tablename(
    propname1 type1,
    propname2 type2,
    ……
    propnamen type..n,
    FULLTEXT INDEX | KEY
    [indexname] (propnamen [(length)] ) 
);

SQL语句示例

create table class(
    id int,
    name varchar(128) unique,
    teacher varchar(64),
    comment varchar(1024),
    fulltext index index_comm(comment)
);

随机插入数据

使用全文检索where match(全文检索字段) against(检索内容);

在已存在表上创建

执行create语句

在MySQL中创建全文索引除了通过SQL语句FULLTEXT INDEX来实现外,还可以通过SQL语句CREATE FULLTEXT INDEX来实现,其语法形式如下:

 CREATE FULLTEXT INDEX indexname
    ON tablename( propname1 [ ( length ) ] ); 

SQL语句示例

create table class(
    id int,
    name varchar(128) unique,
    teacher varchar(64),
    comment varchar(1024)
);
 
create fulltext index index_comment 
    on class(comment);

数据的插入与检索基本与上面类似,这里便不做展示。

QT开发交流+赀料君羊:714620761

执行ALTER TABLE语句

除了上述两种方式来创建全文索引外,在MySQL中创建全文索引还可以通过SQL语句ALTER来实现,其语法形式如下:

ALTER TABLE tablename
    ADD FULLTEXT INDEX|KEY indexname(propname [(length)]);

SQL语句示例

create table class(
    id int,
    name varchar(128) unique,
    teacher varchar(64),
    comment varcha(1024)
);
 
alter table class 
    add fulltext index index_comm (comment);
最近发表
标签列表