mysql的索引类型与数据存储

news2025/2/23 17:42:38
mysql索引与类型
什么是索引?

索引(Index)是帮助MySQL高效获取数据的数据结构。我们可以简单理解为:快速查找排好序的一种数据结构。Mysql索引主要有两种结构:B+Tree索引和Hash索引。我们平常所说的索引,如果没有特别指明,一般都是B树结构组织的索引(B+Tree索引)。

索引类型:
索引名称描述
主键索引它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候指定了主键,就会创建主键索引
唯一索引与普通索引类似,不同的是:索引列的值必须唯一,但是允许为空值。如果是组合索引,则列值的组合必须唯一
单索引单个字段建立索引
联合索引多个字段建立的索引,与单索引可统称为普通索引
全文索引FULLTEXT索引用于全文搜索。只有InnoDB和MyISAM存储引擎支持FULLTEXT索引和仅适用于CHAR,VARCHAR和TEXT列。
覆盖索引只需要在一棵索引树上就能获取SQL所需的所有列数据,无需回表,速度更快。

innoDB不支持hash索引。

主键索引:

创建主键索引语法:

ALTER TABLE"表名" ADD PRIMARY KEY (字段);

例子:

alter table user add primary key (id);

唯一索引:

创建唯一索引语法:

CREATE UNIQUE INDEX 索引名 ON 表名字段名

例子:

create unique index idx_email on user(email);

普通索引:

创建普通索引语法:

ALTER TABLE 表名 ADD INDEX 索引名(字段

例子:

alter table user add index idx_name(name); --单索引

alter table user ADD index idx_age_sex(age,sex); --联合索引

覆盖索引与全文索引

什么是覆盖索引:

mysql官网表达意思:

只需要在一棵索引树上就能获取SQL所需的所有列数据,无需回表,速度更快。

概念:

索引覆盖:是通过普通索引查询的时候,不需要回表查询,直接可以获取到对应的数据

 

全文搜索索引:

全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。它能够利用分词技术等多种算法智能分析出文本文字中关键字词的频繁以及重要性,然后按照一定的算法规则智能地筛选出我们想要的搜索结果。

根据名称创建全文索引:

alter table `user` add FULLTEXT index namefulltext(`name`) WITH parser ngram;
select * from `user` where match(`name`) against('化');

全文搜索索引:

idtitlecontent
1php书籍变量基础语法字符串数组面向对象核心扩展等
2mysql书籍索引事务单表多表查询集群主从分库分表
3redis书籍字符串类型队列有序集合zset类型还有stream类型
4laravel书籍控制器模型数据库数组视图事件队列
5nginx书籍高可用负载均衡反向代理配置解析
6swoole书籍swoole的http服务,tcp定时器
7thinkphp书籍控制器模型数据库数组视图事件队列

全文搜索尽量使用搜索引擎

搜索引擎:es => 大型网站

轻量级搜索引擎:Sphinx =>开销比较小

mysql索引与数据存储的区别:

myisam存储引擎索引:

MYD

MYI

一个存储数据 一个存储索引:分开进行存储。

innodb存储引擎索引:

.ibd => 索引与数据存储 在一个文件中

ascii a 97 b 98

A 65 B 66

总结:

myisam:myisam存储 引擎的普通索引与主键索引在索引指向方面都是指定位实际的数据在磁盘中的位置。

innodb:innodb存储引擎的普通索引与主键索引在索引指定当面是普通索引指定主键索引的数据以及索引相关字段数据在磁盘中的位置,主键索引指向的是数据在磁盘中实际的位置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1576381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

真实的招生办对话邮件及美国高校官网更新的反 AI 政策

这两年 ChatGPT 的热度水涨船高,其编写功能强大,且具备强大的信息整合效果,所以呈现的内容在一定程度上具备可读性。 那么,美国留学文书可以用 ChatGPT 写吗?使用是否有风险?外网博主 Kushi Uppu 在这个申…

鸿蒙学习记录

问题小测记录 总结链接:小测总结 学习笔记:鸿蒙开发学习记录 1、 main_pages.json存放页面page路径配置信息。 2、在stage模型中,下列配置文件属于AppScope文件夹的是? app.json5 3、module.json5配置文件中,包含…

自然语言处理技术(Natural Language Processing)知识点

自然语言处理知识点 自然语言处理1. word2vec是什么2. 常用的NLP工具和软件3. 朴素贝叶斯分类器4. BiLSTM-CRF模型怎么去实现5. Bert模型实现NER6. 命名实体识别任务中,怎么去处理数据分布不均的问题?7. 用户问题检索相关文本时,具体都用了哪…

解决报错 npm ERR! Missing script:“serve“

项目场景: 在运行vue项目时,遇到报错!导致无法启动! 问题描述 报错:npm犯错!缺少脚本:“serve” npm ERR! Missing script:"servenpmERR!ERR! To see a list of scripts, run:noMnpmERR!npm runnpm ERR! A compl…

HiveSQL如何生成连续日期剖析

HiveSQL如何生成连续日期剖析 情景假设: 有一结果表,表中有start_dt和end_dt两个字段,,想要根据开始和结束时间生成连续日期的多条数据,应该怎么做?直接上结果sql。(为了便于演示和测试这里通过…

一个项目的SpringCloud微服务改造过程

SSO是公司一个已经存在了若干年的项目,后端采用SpringMVC、MyBatis,数据库使用MySQL,前端展示使用Freemark。今年,我们对该项目进行了一次革命性的改进,改造成SpringCloud架构,并且把前后端分离&#xff0c…

QT中使得界面类相关输出打印到控制台上

如下图所示,全部输出到了控制台上: 如何设置? 1、设置 Run in teminal 2、pro文件中设置 CONFIG console选项 3、clean -> qmake -> run,此时观察到已经输出到控制台上了

Day16_学点儿JavaEE_理论知识_Tomcat、JSP、Servlet

1 软件的结构 C/S (Client - Server 客户端-服务器端) 典型应用:QQ软件 ,飞秋,印象笔记。 特点: 必须下载特定的客户端程序。服务器端升级,客户端升级。 B/S (Broswer -Server 浏览器端- 服务器端&…

一起学习python——基础篇(7)

今天讲一下python的函数。 函数是什么?函数是一段独立的代码块,这块代码是为了实现一些功能,而这个代码块只有在被调用时才能运行。 在 Python 中,使用 def 关键字定义函数: 函数的固定结构就是 def(关键字)函数名字…

Day108:代码审计-PHP模型开发篇MVC层动态调试未授权脆弱鉴权未引用错误逻辑

目录 案例1-Xhcms-动态调试-脆弱的鉴权逻辑 案例2-Cwcms-动态调试-未引用鉴权逻辑 案例3-Bosscms-动态调试-不严谨的鉴权逻辑 知识点: 1、PHP审计-动态调试-未授权安全 2、PHP审计-文件对比-未授权安全 3、PHP审计-未授权访问-三种形态 动态调试优点: 环境配置&…

C语言 | Leetcode C语言题解之第15题三数之和

题目&#xff1a; 题解&#xff1a; int cmp(const void *x, const void *y) {return *(int*)x - *(int*)y; } //判断重复的三元组 bool TheSame(int a, int b, int c, int **ans, int returnSize) {bool ret true;for(int i 0;i < returnSize;i){if(a ans[i][0] &&…

Java智慧校园系统源码 微信小程序+电子班牌

Java智慧校园系统源码 微信小程序电子班牌 通过设备管理对百纳智慧校园的智慧班牌以及百纳智慧屏&#xff08;校牌&#xff09;进行统一集中式管理&#xff0c;支持浏览所有设备的基本信息以及在离线状态&#xff0c;支持添加设备、设备一键开关机、一键重启、设置节假日开关机…

TiDB 慢查询日志分析

导读 TiDB 中的慢查询日志是一项 关键的性能监控工具&#xff0c;其主要作用在于协助数据库管理员追踪执行时间较长的 SQL 查询语句。 通过记录那些超过设定阈值的查询&#xff0c;慢查询日志为性能优化提供了关键的线索&#xff0c;有助于发现潜在的性能瓶颈&#xff0c;优化…

YOLOV8 + 双目测距

YOLOV8 双目测距 1. 环境配置2. 测距流程和原理2.1 测距流程2.2 测距原理 3. 代码部分解析3.1 相机参数stereoconfig.py3.2 测距部分3.3 主代码yolov8-stereo.py 4. 实验结果4.1 测距4.2 测距跟踪4.3 测距跟踪分割4.4 视频展示 相关文章 1. YOLOv5双目测距&#xff08;python&…

面向低碳经济运行目标的多微网能量互联优化调度matlab程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 运用平台 matlabgurobi 程序简介 该程序为多微网协同优化调度模型&#xff0c;系统在保障综合效益的基础上&#xff0c;调度时优先协调微网与微网之间的能量流动&#xff0c;将与大电网的互联交互作为备用…

免费SSL通配符证书/SSL泛域名证书获取教程

我们先基本了解什么是SSL证书以及其作用。SSL证书是一种数字证书&#xff0c;它通过为网站提供身份验证和数据加密服务&#xff0c;从而保护网站的用户信息安全。当我们在浏览器的地址栏看到“https”和绿色锁标志时&#xff0c;就表示该网站使用了SSL证书。 那么什么又是通配…

刷代码随想录有感(24)

有时候我会怀疑努力的意义&#xff0c;因为我总是花人家好几倍的时间去理解一个狗看了都觉得弱智的问题&#xff0c;思考过后我知道&#xff0c;努力本没有意义&#xff0c;是在未来可能十年内取得成就时突然回想起来之前做过一些事情&#xff0c;未来的成就赋予曾经的意义&…

SiteSpace 使用方法笔记

目录 介绍下载及安装准备工作知网 CNKI 文献分析数据准备数据转换新建项目图形处理 介绍 CiteSpace 是一个用于可视化和分析科学文献的工具。它可以从科学文献库中提取关键词、作者、机构和引用关系等信息&#xff0c;并将其可视化为图形网络。 一些使用案例 下载及安装 下载…

【运输层】传输控制协议 TCP

目录 1、传输控制协议 TCP 概述 &#xff08;1&#xff09;TCP 的特点 &#xff08;2&#xff09;TCP 连接中的套接字概念 2、可靠传输的工作原理 &#xff08;1&#xff09;停止等待协议 &#xff08;2&#xff09;连续ARQ协议 3、TCP 报文段的首部格式 &#xff08;1…

AcWing---公约数---最大公约数

4199. 公约数 - AcWing题库 思路&#xff1a; 最大整数x一定是最大公约数的因数&#xff0c;所以先用__gcd(a,b)求出a和b的最大公因数&#xff0c;再用O(log(n))的算法求出最大公因数的因数&#xff0c;放到vector中&#xff0c;并将vector排序。利用STL中的upper_bound(res.…