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

MySQL索引ES索引

MySQL

MySQL索引的种类

  1. 按照索引列值的唯一性:索引可分为唯一索引和非唯一索引;
    唯一索引:此索引的每一个索引值只对应唯一的数据记录,对于单列唯一性索引,这保证单列不包含重复的值。对于多列唯一性索引,保证多个值的组合不重复。主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。
  2. 索引列的个数:单列索引和复合索引;
  3. 按照索引列的物理组织方式:聚集索引和非聚集索引 (主键的B+Tree就是聚集索引)
    聚集索引(也叫聚簇索引)中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。 如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。

InnoDB的主键索引

MyISAM不管是主键索引,唯一键索引,或者普通索引,其索引均属于稀疏索引。而InnoDB必须有且仅有一个密集索引,这个密集索引的选取规则如下:

  1. 若一个主键被定义,该主键则作为密集索引;
  2. 若没有主键被定义,该表的第一个唯一非空索引则作为密集索引;
  3. 若不满足以上条件,InnoDB内部会生成一个隐藏主键(密集索引),这个隐藏的主键是一个6字节的列,该列的值会随着数据的插入而自增,也就是说,我们的InnoDB必须有一个主键,而该主键就必须作为唯一的密集索引而存在。那为什么它一定要有主键索引呢?看第4点;
  4. 非主键索引存储相关键位和其对应的主键值,包含两次查找。非主键索引,即稀疏索引的叶子节点并不存储行数据的物理地址,而是存储该行的主键值,所以非主键索引包含了两次查找,一次是查找次级索引之身,然后再查找主键,

根据该图,我们知道InnoDB会有一个密集索引,将主键组织到一颗B+树中,而行数据就存储在叶子节点上,因为InnoDB的主键索引和对应的数据是保存在同一个文件当中的,所以呢,检索的时候,在加载叶子节点的主键进入内存的同时,也加载了对应的数据。即若使用“where id =14“这样的条件查询主键,则按照B+树的检索算法即可查找到对应的叶子节点,并获得对应的行数据。

若对稀疏索引进行条件筛选,

相关文章:

MySQL索引ES索引

MySQL MySQL索引的种类 按照索引列值的唯一性:索引可分为唯一索引和非唯一索引; 唯一索引:此索引的每一个索引值只对应唯一的数据记录,对于单列唯一性索引,这保证单列不包含重复的值。对于多列唯一性索引,保证多个值的组合不重复。主键索引是唯一索引的特定类型。该索引…...

webSocket 聊天室 node.js 版

全局安装vue脚手架 npm install vue/cli -g 创建 vue3 ts 脚手架 vue create vue3-chatroom 后端代码 src 同级目录下建 server: const express require(express); const app express(); const http require(http); const server http.createServer(app);const io req…...

iptables防火墙(SNAT与DNAT)

目录 1 SNAT 1.1 SNAT原理与应用 1.2 SNAT工作原理 1.3 SNAT转换前提条件 2 SNAT示例 ​编辑 2.1 网关服务器配置 2.1.1 网关服务器配置网卡 2.1.2 开启SNAT命令 2.2 内网服务器端配置 2.3 外网服务器端配置 2.4 网卡服务器端添加规则 2.5 SNAT 测试 3 DNAT 3.1 网卡…...

第 359 场 LeetCode 周赛题解

A 判别首字母缩略词 签到题… class Solution { public:bool isAcronym(vector<string> &words, string s) {string pf;for (auto &s: words)pf.push_back(s[0]);return pf s;} };B k-avoiding 数组的最小总和 贪心&#xff1a;从 1 1 1开始升序枚举&#xff0c…...

【开源项目】Stream-Query的入门使用和原理分析

前言 无意间发现了一个有趣的项目&#xff0c;Stream-Query。了解了一下其基本的功能&#xff0c;可以帮助开发者省去Mapper的编写。在开发中&#xff0c;我们会编写entity和mapper来完成业务代码&#xff0c;但是Stream-Query可以省去mapper&#xff0c;只写entity。 快速入…...

微信小程序picker组件的简单使用 单选

<picker mode"selector" range"{{classData}}" bindchange"bindClassChange" value"{{classIndex}}" range-key"className"><view class"picker">{{classData[classIndex].className || 请选择班级}}…...

python、numpy、pytorch中的浅拷贝和深拷贝

1、Python中的浅拷贝和深拷贝 import copya [1, 2, 3, 4, [11, 22, 33, [111, 222]]] b a c a.copy() d copy.deepcopy(a)print(before modify\r\n a\r\n, a, \r\n,b a\r\n, b, \r\n,c a.copy()\r\n, c, \r\n,d copy.deepcopy(a)\r\n, d, \r\n)before modify a [1, 2…...

EasyRecovery14数据恢复软件支持各类存储设备的数据恢复

EasyRecovery14数据恢复软件专业数据恢复软件支持电脑、相机、移动硬盘、U盘、SD卡、内存卡、光盘、本地电子邮件和 RAID 磁盘阵列等各类存储设备的数据恢复。 目前市面上有许多数据恢复软件&#xff0c;但褒贬不一&#xff0c;而且数据恢复软件又不是一款会被经常使用的软件&a…...

玩机搞机----面具模块的组成 制作模块

root面具相信很多玩家都不陌生。早期玩友大都使用第三方卡刷补丁来对系统进行各种修复和添加功能。目前面具补丁代替了这些操作。今天的帖子了解下面具各种模块的组成和几种普遍的代码组成。 Magisk中运行的每个单独的shell脚本都将在内部的BusyBox的shell中执行。对于与第三方…...

注册中心/配置管理 —— SpringCloud Consul

Consul 概述 Consul 是一个可以提供服务发现&#xff0c;健康检查&#xff0c;多数据中心&#xff0c;key/Value 存储的分布式服务框架&#xff0c;用于实现分布式系统的发现与配置。Cousul 使用 Go 语言实现&#xff0c;因此天然具有可移植性&#xff0c;安装包仅包含一个可执…...

Next.js 13 你需要了解的 8 件事

目录 React 服务器组件 &#xff08;RSC&#xff09;服务器组件默认开启在 Next.js 中客户端组件也在服务器上呈现&#xff01;组成客户端和服务器组件编译Next.js 13 渲染模式桶文件有点坏了库集成&#xff1a;WIP 仍在进行中Route groups 路由组总结 在本文中&#xff0c;我们…...

计数排序(Count Sort)算法详解

1. 算法简介 计数排序&#xff08;Count Sort&#xff09;是一种非比较排序算法&#xff0c;其核心思想是统计数组中每个元素出现的次数&#xff0c;然后根据统计结果将元素按照顺序放回原数组中。计数排序的时间复杂度为O(nk)&#xff0c;其中n是数组的长度&#xff0c;k是数…...

Linux驱动开发(Day3)

驱动点灯&#xff1a;...

使用Vscode调试shell脚本

在vcode中安装bash dug插件 在vcode中添加launch.json配置&#xff0c;默认就好 参考&#xff1a;http://www.rply.cn/news/73966.html 推荐插件&#xff1a; shellman(支持shell,智能提示) shellcheck(shell语法检查) shell-format(shell格式化)...

OpenAI Function calling

开篇 原文出处 最近 OpenAI 在 6 月 13 号发布了新 feature&#xff0c;主要针对模型进行了优化&#xff0c;提供了 function calling 的功能&#xff0c;该 feature 对于很多集成 OpenAI 的应用来说绝对是一个“神器”。 Prompt 的演进 如果初看 OpenAI 官网对function ca…...

【C语言】字符分类函数、字符转换函数、内存函数

前言 之前我们用两篇文章介绍了strlen、strcpy、stract、strcmp、strncpy、strncat、strncmp、strstr、strtok、streeror这些函数 第一篇文章strlen、strcpy、stract 第二篇文章strcmp、strncpy、strncat、strncmp 第三篇文章strstr、strtok、streeror 今天我们就来学习字…...

Deep Learning With Pytorch - 最基本的感知机、贯序模型/分类、拟合

文章目录 如何利用pytorch创建一个简单的网络模型&#xff1f;Step1. 感知机&#xff0c;多层感知机&#xff08;MLP&#xff09;的基本结构Step2. 超平面 ω T ⋅ x b 0 \omega^{T}xb0 ωT⋅xb0 or ω T ⋅ x b \omega^{T}xb ωT⋅xb感知机函数 Step3. 利用感知机进行决策…...

测试工具coverage的高阶使用

在文章Python之单元测试使用的一点心得中&#xff0c;笔者介绍了自己在使用Python测试工具coverge的一点心得&#xff0c;包括&#xff1a; 使用coverage模块计算代码测试覆盖率使用coverage api计算代码测试覆盖率coverage配置文件的使用coverage badge的生成 本文在此基础上…...

安卓监听端口接收消息

文章目录 其他文章监听端口接收消息 建立新线程完整代码 其他文章 下面是我的另一篇文章&#xff0c;是在电脑上发送数据&#xff0c;配合本篇文章&#xff0c;可以实现电脑与手机的局域网通讯。直接复制粘贴就能行&#xff0c;非常滴好用。 点击连接 另外&#xff0c;如果你不…...

「Node」下载安装配置node.js

以下是Node.js的下载、安装和配置的全面教程&#xff1a; 下载 Node.js 打开 Node.js 官方网站&#xff1a;Previous Releases在主页上&#xff0c;您会看到两个版本可供选择&#xff1a;LTS&#xff08;长期支持版本&#xff09;和最新版&#xff08;Current&#xff09;。如…...

用STM32和RDM6300模块DIY一个EM4100 ID卡读卡器(附完整代码和避坑指南)

用STM32和RDM6300打造高稳定性EM4100读卡器&#xff1a;从硬件连接到算法优化 在智能门禁、仓储管理和物联网设备身份识别等领域&#xff0c;低频RFID技术因其稳定性和低成本始终占据重要地位。EM4100作为最经典的125kHz只读ID卡芯片&#xff0c;其兼容读卡器的DIY实现一直是嵌…...

Latest-adb-fastboot-installer-for-windows:基于自动化驱动管理架构的Android开发环境配置工具深度解析

Latest-adb-fastboot-installer-for-windows&#xff1a;基于自动化驱动管理架构的Android开发环境配置工具深度解析 【免费下载链接】Latest-adb-fastboot-installer-for-windows A Simple Android Driver installer tool for windows (Always installs the latest version) …...

构建现代化小说下载解决方案:探索Rust驱动的番茄小说下载器

构建现代化小说下载解决方案&#xff1a;探索Rust驱动的番茄小说下载器 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 在数字阅读日益普及的今天&#xff0c;小说爱好者们面临…...

qmc-decoder:专业QMC音频文件解密转换工具

qmc-decoder&#xff1a;专业QMC音频文件解密转换工具 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder qmc-decoder是一款高效、专业的QMC音频文件解密转换工具&#xff0c;…...

MarkFlowy桌面应用打包与发布:Tauri框架实战经验分享

MarkFlowy桌面应用打包与发布&#xff1a;Tauri框架实战经验分享 【免费下载链接】MarkFlowy The AI Markdown Editor 项目地址: https://gitcode.com/gh_mirrors/ma/MarkFlowy MarkFlowy作为一款高性能智能化跨端Markdown编辑器&#xff0c;采用Tauri框架实现了轻量级桌…...

告别“模板感”:打造高转化企业官网的全流程指南

在互联网流量红利见顶的今天&#xff0c;企业官网早已不再是简单的“网络名片”。面对同质化严重的模板网站&#xff0c;用户早已审美疲劳。一个真正有价值的网站&#xff0c;不仅要颜值在线&#xff0c;更要有清晰的定位和严密的逻辑支撑。它既是品牌形象的门面&#xff0c;更…...

PlantUML Editor:5分钟学会用代码绘制专业UML图的终极工具

PlantUML Editor&#xff1a;5分钟学会用代码绘制专业UML图的终极工具 【免费下载链接】plantuml-editor PlantUML online demo client 项目地址: https://gitcode.com/gh_mirrors/pl/plantuml-editor 还在为复杂的UML图表绘制而烦恼吗&#xff1f;PlantUML Editor是一款…...

从系统光标到个性化指针:动漫主题鼠标指针的完整实现指南

1. 项目概述&#xff1a;从“二次元”到“生产力”的鼠标指针革命如果你和我一样&#xff0c;每天有超过8小时的时间与电脑为伴&#xff0c;那么鼠标指针就是你最亲密的“数字伙伴”。它可能是一个单调的白色箭头&#xff0c;也可能是一个乏味的沙漏。但你想过吗&#xff1f;这…...

基于Slack与AI的IDE智能助手:架构设计与实战部署

1. 项目概述&#xff1a;当你的IDE拥有了“光标智能体” 如果你是一名开发者&#xff0c;每天在IDE&#xff08;集成开发环境&#xff09;里敲代码的时间超过8小时&#xff0c;那你一定对这样的场景不陌生&#xff1a;光标在代码行间跳跃&#xff0c;你正试图理解一个复杂的函…...

基于视觉大模型的GUI自动化:从原理到实践

1. 项目概述&#xff1a;当GUI自动化遇见视觉大模型 最近在折腾自动化测试和RPA&#xff08;机器人流程自动化&#xff09;的时候&#xff0c;我遇到了一个老生常谈但又极其棘手的问题&#xff1a;如何稳定、高效地识别和操作那些没有标准控件标识的图形界面元素&#xff1f;传…...