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

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 -- 指明使用的是哪一个全文索引(索引名)

相关文章:

  • 《AI时代程序员的核心技能升级之路》
  • LInux操作系统安装Jenkins
  • Kafka技术详解[5]: 集群启动
  • 修改 idea 的 Terminal 命令窗口使用 git-bash
  • 计算机网络33——文件系统
  • 动态规划算法:13.简单多状态 dp 问题_打家劫舍II_C++
  • Meta广告资料库使用教程:Facebook、Instagram海外社媒营销统统拿下!
  • BEV学习---LSS4-模型训练
  • C++语法—引用
  • 以题为例浅谈反序列化漏洞
  • 高效的知识付费SaaS平台构建:探索Spring Cloud结合Spring Boot的最佳实践
  • C++——输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少。用指针方法处理。
  • 手搓一个Agent#Datawhale 组队学习Task3
  • 当Navicat报错 Can not connect to MySQL server的解决方法!
  • 代码随想录算法训练营Day13
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 0基础学习移动端适配
  • android图片蒙层
  • Angular 2 DI - IoC DI - 1
  • input实现文字超出省略号功能
  • java8 Stream Pipelines 浅析
  • mongo索引构建
  • python学习笔记-类对象的信息
  • React-flux杂记
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 从0实现一个tiny react(三)生命周期
  • 对象引论
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 一文看透浏览器架构
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • ​比特币大跌的 2 个原因
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • $.proxy和$.extend
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (LeetCode) T14. Longest Common Prefix
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)ssm高校实验室 毕业设计 800008
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (七)Knockout 创建自定义绑定
  • (十五)使用Nexus创建Maven私服
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (一)为什么要选择C++
  • (转)memcache、redis缓存
  • .net Application的目录
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .Net Web项目创建比较不错的参考文章
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...