MySQL innodb 全文索引使用
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,1、mysql 5.7 全文索引以下几个参数(配置文件/etc/my.cnf)#控制innodb全文检索分词的最小长度,如果设置为2那么一个汉字和一个字母将不能搜到ngram_token_size=1
千家信息网最后更新 2025年01月20日MySQL innodb 全文索引使用
1、mysql 5.7 全文索引以下几个参数(配置文件/etc/my.cnf)
#控制innodb全文检索分词的最小长度,如果设置为2那么一个汉字和一个字母将不能搜到ngram_token_size=1
#存储在InnoDB的FULLTEXT索引中的最小词长,所说使用了ngram_token_size之后就不用innodb_ft_min_token_size了,但为了保险我两个都设置了innodb_ft_min_token_size=1
#最小分词长度,一般修改为1ft_min_word_len = 1
2、创建表
mysql> show create table s_test;+--------+---------------------------------------------------------+| Table | Create Table |+--------+---------------------------------------------------------+| s_test | CREATE TABLE `s_test` ( `id` int(11) NOT NULL DEFAULT '0' COMMENT 'primary key', `uname` varchar(50) DEFAULT NULL COMMENT '用户名', `dept` int(11) DEFAULT NULL COMMENT '部门组ID', `info` varchar(200) DEFAULT NULL COMMENT '其他信息') ENGINE=InnoDB DEFAULT CHARSET=utf8 |+--------+--------------------------------------------------------+1 row in set (0.00 sec)
3、创建索引
mysql> create fulltext index ix_ft_s_test_uname_info on s_test(uname,info) WITH PARSER ngram;Query OK, 0 rows affected, 1 warning (2.68 sec)Records: 0 Duplicates: 0 Warnings: 1
4、查询这张表的所有索引
mysql> show index from s_test;+--------+------------+-------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |+--------+------------+-------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| s_test | 1 | ix_ft_s_test_uname_info | 1 | uname | NULL | 99750 | NULL | NULL | YES | FULLTEXT | | || s_test | 1 | ix_ft_s_test_uname_info | 2 | info | NULL | 99750 | NULL | NULL | YES | FULLTEXT | | |+--------+------------+-------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+2 rows in set (0.00 sec)
5、查询索引详细情况
mysql> select * from mysql.innodb_index_stats where database_name='mydb' and table_name='s_test' ;+---------------+------------+------------------+---------------------+--------------+------------+-------------+-----------------------------------+| database_name | table_name | index_name | last_update | stat_name | stat_value | sample_size | stat_description |+---------------+------------+------------------+---------------------+--------------+------------+-------------+-----------------------------------+| mydb | s_test | FTS_DOC_ID_INDEX | 2015-10-03 14:07:18 | n_diff_pfx01 | 100672 | 20 | FTS_DOC_ID || mydb | s_test | FTS_DOC_ID_INDEX | 2015-10-03 14:07:18 | n_leaf_pages | 121 | NULL | Number of leaf pages in the index || mydb | s_test | FTS_DOC_ID_INDEX | 2015-10-03 14:07:18 | size | 161 | NULL | Number of pages in the index || mydb | s_test | GEN_CLUST_INDEX | 2015-10-03 14:07:18 | n_diff_pfx01 | 99750 | 20 | DB_ROW_ID || mydb | s_test | GEN_CLUST_INDEX | 2015-10-03 14:07:18 | n_leaf_pages | 525 | NULL | Number of leaf pages in the index || mydb | s_test | GEN_CLUST_INDEX | 2015-10-03 14:07:18 | size | 545 | NULL | Number of pages in the index |+---------------+------------+------------------+---------------------+--------------+------------+-------------+-----------------------------------+6 rows in set (0.00 sec)
6、全索引查询
通过在AGAINST()函数中指定1、IN NATURAL LANGUAGE MODE expr就是要搜寻的字符串。 2、IN NATURAL MODE WITH QUERY EXPANSION 第一次用给定的短语搜索,第二次使用给定的短语结合第一次搜索返回结果中相关性非常高的一些行进行搜索。3、IN BOOLEAN MODE expr里有特殊字符辅助特殊的搜寻语法
查询只能按短语,不能使用中间字符mysql> select count(*) from s_test where MATCH(uname,info) AGAINST ('a*' IN BOOLEAN MODE);+----------+| count(*) |+----------+| 6238 |+----------+1 row in set (0.02 sec)
索引
查询
最小
字符
短语
搜索
全文
特殊
第一次
长度
不用
两个
中指
信息
全文检索
函数
参数
字母
字符串
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发招聘深圳
中小企业的数据库
如何查看阿里云购买的服务器
文字软件开发教程
网络安全密钥不知道密码
无线网络安全知识偶像
中山市凯源网络技术有限公司
5g+网络技术标准
网络安全与心理健康反思
陕西网络安全态势感知中标公告
免费共享网络安全吗
数据库关联链接是什么原因
国家网络安全法151号令
mc服务器基岩版可以进吗
2017网络安全宣传海报
软件开发者什么意思
小学网络安全教育安排
数据库对象资源管理怎么调
雅安租房软件开发
计算机网络技术实验子接口
将网络安全法律
上传文件到服务器java
互联网的科技应用领域
超市系统数据库安全
软件开发由航母变成小船
Ips网络安全认证
金仓数据库用的是什么端口
数据库在键码属性上建立索引
为做好网络安全防护工作
mqtt服务器 后台管理