mysql索引(八)全文索引

Mysql索引大概有五种类型:

普通索引(INDEX):最基本的索引,没有任何限制
唯一索引(UNIQUE):与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。
主键索引(PRIMARY):它 是一种特殊的唯一索引,不允许有空值。
全文索引(FULLTEXT ):可用于 MyISAM 表,mysql5.6之后也可用于innodb表, 用于在一篇文章中,检索文本信息的, 针对较大的数据,生成全文索引很耗时和空间。
联合(组合)索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。

这里看下全文索引。

全文索引,平时用到的不多,字数较多的文章查询基本上我们就使用中文分词器来进行分词查询,而不是使用全文索引来查询。全文索引的效率还是低。

但是相较于文字较少的数据,使用全文索引的效率要比使用like进行模糊查询的效率要高。

一:基本使用

1:建表的时候创建全文索引

create table fulltext_test (
    id int(11) NOT NULL AUTO_INCREMENT,
    content text NOT NULL,
    tag varchar(255),
    PRIMARY KEY (id),
    FULLTEXT KEY content_tag_fulltext(content,tag)  // 创建联合全文索引列
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

2:在已存在的表上创建全文索引

(1):使用create语句创建索引

create fulltext index content_tag_fulltext
    on fulltext_test(content,tag);

(2):使用alter语句创建索引

alter table fulltext_test
    add fulltext index content_tag_fulltext(content,tag);

3:修改全文索引

修改全文索引有点麻烦,想修改的话,直接删了重新创建就好。

4:删除全文索引

(1):直接使用 DROP INDEX 删除全文索引

drop index content_tag_fulltext
    on fulltext_test;

(2):通过 SQL 语句 ALTER TABLE 删除全文索引

alter table fulltext_test
    drop index content_tag_fulltext;

5:使用全文索引

语法:

MATCH (columnName) AGAINST ('string')

示例:

SELECT * FROM `student` WHERE MATCH
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值