【MySQL】全文索引详解

本文介绍MySQL中的全文索引,包括其工作原理、适用场景及创建方法。从MySQL 3.23.23版本开始支持全文索引,并详细说明了在不同版本下支持的存储引擎。文中还提供了创建全文索引的三种方法:创建表时定义索引、使用CREATE FULLTEXT INDEX语句以及使用ALTER TABLE语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

🍀全文索引概述

🍀全文索引的创建

🍀创建表时定义索引

🍀在已存在表上创建

🍀执行create语句

🍀执行ALTER TABLE语句


全文索引概述

    全文索引主要对字符串类型建立基于分词的索引,主要是基于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);

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

执行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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值