文章目录
🍀全文索引概述
🍀全文索引的创建
🍀创建表时定义索引
🍀在已存在表上创建
🍀执行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 indexnameON 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 tablenameADD 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);