zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL索引详解,这一篇绝对够 下

2023-03-14 22:46:18 时间

(5)全文索引(FULLTEXT)

适合在进行模糊查询的时候使用,可用于在一篇文章中检索文本信息。在MySQL5.6版本以前

FULLTEXT 索引仅可用于MyISAM 引擎,在5.6 版本之后innodb 引擎也支持FULLTEXT索引。全文索引可以在CHAR、VARCHAR或者

TEXT 类型的列上创建。每个表只允许有一一个全文索引。

●直接创建索引

CREATE FULLTEXT INDEX 索引名 ON 表名 (列名);

image

●修改表方式创建

ALTER TABLE 表名 ADD FULLTEXT 索引名 (列名);
alter table member add fulltext remark index  (remark);

image

●创建表的时候指定索引

CREATE TABLE 表名 (字段1 数据类型[,...],FULLTEXT 索引名 (列名));
#数据类型可以为CHAR、VARCHAR或者TEXT

image

●使用全文索引查询

SELECT * FROM 表名 WHERE MATCH (列名) AGAINST('查询内容');
 
insert into member values (1,zhangsan,123123,123123,'nanjing','this is member!');
insert into member values (2,'lisi',456456,456456,'beijing','this is vip!');
insert into member values (3,'wangwu',789789,78979,'shanghai','this is vip member!');
select * from member where match(remark) against('vip');

image

(6)查看索引

show index from 表名; 
show keys from 表名;

各字段的含义如下:

Table:表的名称。

Non_unique:如果索引不能包括重复词,则为0;如果可以,则为1。

Key_name: 索引的名称。

Seq_in_index: 索引中的列序号,从1开始。

Column_name:列名称。

Collation: 列以什么方式存储在索引中。在MySQL中,有值’A’ (升序)或NULL (无分类)。

Cardinality: 索引中唯一值数目的估计值。

Sub_ part: 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。

Packed: 指示关键字如何被压缩。如果没有被压缩,则为NULL。

Null: 如果列含有NULL, 则含有YES。 如果没有,则该列含有NO。

Index_ type: 用过的索引方法( BTREE,FULLTEXT, HASH, RTREE) 。

Comment: 备注。

(7) 删除索引

●直接删除索引

DROP INDEX 索引名 ON 表名;

image

●修改表方式删除索引

ALTER TABLE 表名 DROP INDEX 索引名;

image

●删除主键索引

ALTER TABLE 表名 DROP PRIMARY KEY;

image

原文地址:

https://blog.csdn.net/weixin_55609814/article/details/118154914?spm=1001.2014.3001.5501