当前位置: 首页 > article >正文

mysql索引 -- 全文索引介绍(如何创建,使用),explain关键字

目录

全文索引

引入

介绍

创建

使用

表数据

简单搜索

explain关键字

使用全文索引


mysql索引结构详细介绍 -- mysql索引 -- 索引的硬件理解(磁盘,磁盘与系统),软件理解(mysql,与系统io,buffer pool),索引结构介绍和理解(page内部,page之间,为什么是b+树)-CSDN博客

全文索引

引入

如果需要对文章进行检索

  • 假设它有一列body字段(text类型),可以容纳上万个字符
  • 而我们想要找到body中某一行中的一些字段,就需要使用全文索引

之前介绍的b+树构成的索引,都是想要找到某一列/某几列的数据,而不是这里想要的一列中的一部分

介绍

是一种特殊类型的索引,主要用于加速对大文本数据的搜索

  • 适合实现搜索引擎功能

目前,只有MyISAM存储引擎支持全文索引,且只支持英文的

  • 特点:支持高并发读

创建

语法 -- FULLTEXT(列名)

  • 默认以列名为索引名称

使用

表数据

CREATE TABLE articles (
    id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
    title VARCHAR(200),
    body TEXT,
    FULLTEXT (title,body)
)engine=MyISAM;

INSERT INTO articles (title,body) VALUES
('MySQL Tutorial','DBMS stands for DataBase ...'),
('How To Use MySQL Well','After you went through a ...'),
('Optimizing MySQL','In this tutorial we will show ...'),
('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
('MySQL vs. YourSQL','In the following database comparison ...'),
('MySQL Security','When configured properly, MySQL ...');

因为我们一般会先确定文章标题,然后再在文章内部查询

  • 所以我们以(title,body)创建全文索引 -- FULLTEXT (title,body)

简单搜索

可以使用like在列内部进行模糊匹配:

  • select * from articles where body like '%database%';
  • 这是简单搜索,并没有用到全文索引
  • 普通搜索时不会自动使用全文索引
explain关键字

在sql语句前添加explain关键字,可以显示mysql会如何执行这条语句(执行计划):

select_type:查询类型

  • simple:简单查询
  • primary:主查询

type:连接类型,表明访问的效率

  • all :全部遍历
  • index:索引扫描

key:实际使用的索引

  • null:没有使用

使用全文索引

语法 -- where + match(key值) against ('要查找的字符')

再次查看执行计划:

  • type :fulltext -- 使用全文索引
  • key :title -- 指明使用的是哪一个全文索引(索引名)


http://www.kler.cn/a/323064.html

相关文章:

  • 深入解析 CentOS 7 上 MySQL 8.0 的最佳实践20241112
  • MySQL【七】
  • daos集群部署(单机)
  • 关于在Reverse函数中不能使用L=s而是*L=*s的原因分析
  • 蓝队技术学习
  • 什么是项目完整性管理?
  • C#中NModbus4中常用的方法
  • 解决Mac 默认设置 wps不能双面打印的问题
  • DevExpress WPF中文教程:如何解决编辑单元格值的常见问题?
  • 1.6 物理层
  • 每天学习一个技术栈 ——【Django Channels】篇(1)
  • 《深度学习》—— 神经网络中的数据增强
  • PHP中如何使用三元条件运算符
  • 智能PPT行业赋能用户画像
  • Kafka系列之:安装部署CMAK,CMAK管理大型Kafka集群参数调优
  • 实现org.springframework.beans.factory.InitializingBean 接口--初始化bean
  • 渲染太慢?Maya云渲染教程
  • 转行大模型的必要性与未来前景:迎接智能时代的浪潮
  • 阅读CVPR论文——mPLUG-Owl2:革命性的多模态大语言模型与模态协作
  • 复杂网络(Complex Network)社团数据可视化分析(gephi)实验
  • 初识爬虫8
  • SwiftUI疑难杂症(1):sheet content多次执行
  • 在Java中,关于final、static关键字与方法的重写和继承【易错点】
  • io流(学习笔记01)--File知识点
  • Qt常用快捷键
  • 数据结构:串 及串的模式匹配(KMP)