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

【数据库】【MySQL】索引

MySQL中索引的概念

索引(MySQL中也叫做"键(key)")是一种数据结构,用于存储引擎快速定找到记录。
简单来说,它类似于书籍的目录,通过索引可以快速找到对应的数据行,而无需遍历整个表。索引建立在表的列上,通过对列中的数据进行特定的排序和存储方式,使得数据库在执行查询操作时,能够迅速定位到满足条件的数据。例如,在一个包含大量用户信息的表中,如果没有索引,当要查询某个特定用户时,可能需要逐行检查每一条记录;而有了索引,数据库可以直接根据索引找到对应的用户记录,大大提高了查询效率。索引不仅可以用于加速查询,还能在数据唯一性约束、排序操作等方面发挥重要作用 。

索引的作用

  • 加快数据检索速度:通过索引可以快速定位到符合条件的数据行,减少全表扫描的次数,从而大大提高查询效率。
  • 在牺牲少量写入性能的前提下,显著提升查询效率
  • 唯一索引和主键索引能确保表中特定列的数据唯一性,避免重复数据的插入,保证数据的完整性。

索引的优缺点

优点

  • 提高查询速度,减少查询时间,提升数据库的响应性能。
  • 可以强制数据的唯一性,维护数据的完整性和一致性。

缺点

  • 占用存储空间:索引本身需要占用一定的磁盘空间,特别是在数据量较大的情况下,索引占用的空间也会相应增加。
  • 影响写入性能:在插入、更新和删除数据时,不仅要更新数据本身,还要更新对应的索引,会增加操作的时间和资源消耗。

MySQL中主流索引类型详解

索引有很多种不同的类型,可以为不同的场景提供更好的性能。在MySQL中,索引是在存储引擎层而不是在服务器层实现的。所以并没有同一的索引标准:不同存储引擎支持的索引不完全相同,不同的存储引擎相同索引的底层实现不一样,工作方式也不同。

核心索引类型对比

索引类型存储引擎支持数据结构是否唯一支持操作典型应用场景索引示例SQL
B+Tree索引InnoDB/MyISAMB+Tree可选=, >, <, >=, <=, BETWEEN, ORDER BY, LIKE ‘prefix%’主键索引、普通索引、联合索引CREATE INDEX idx_name ON users(last_name)
哈希索引MEMORY引擎显式支持
InnoDB自适应哈希隐式使用
Hash Table可选仅精确匹配 (=, <=>)内存表(MEMORY引擎)、等值过滤CREATE TABLE mem_table (...) ENGINE=MEMORY
全文索引InnoDB(5.6+)/MyISAM倒排索引不支持MATCH() AGAINST()
支持自然语言/布尔搜索
文章内容搜索、商品描述查询ALTER TABLE articles ADD FULLTEXT(title,body)
空间索引InnoDB(5.7+)/MyISAMR-Tree不支持GIS关系运算
(ST_Contains, ST_Distance等)
GIS数据查询、地图坐标查询、地理围栏判断CREATE SPATIAL INDEX sp_idx ON lands(poly)
主键索引所有引擎B+Tree强制唯一与B+Tree相同表的主标识字段CREATE TABLE ... PRIMARY KEY(id)

关注我!下一篇,我们继续详细学习不同类型的索引!

相关文章:

【数据库】【MySQL】索引

MySQL中索引的概念 索引&#xff08;MySQL中也叫做"键&#xff08;key&#xff09;"&#xff09;是一种数据结构&#xff0c;用于存储引擎快速定找到记录。 简单来说&#xff0c;它类似于书籍的目录&#xff0c;通过索引可以快速找到对应的数据行&#xff0c;而无需…...

大语言模型(LLM)提示词(Prompt)高阶撰写指南

——结构化思维与工程化实践 一、LLM提示词设计的核心逻辑 1. 本质认知 LLM是「超强模式识别器概率生成器」&#xff0c;提示词的本质是构建数据分布约束&#xff0c;通过语义信号引导模型激活特定知识路径。优秀提示词需实现&#xff1a; 精准性&#xff1a;消除歧义&#…...

LabVIEW C编译支持工具库CCompileSupp.llb

路径&#xff1a;C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform\CCompileSupp.llb ​ 1. 工具库概述 定位&#xff1a;LabVIEW内置的C语言编译支持工具库&#xff0c;用于处理LabVIEW与C/C代码的混合编程接口&#xff0c;涵盖编译器配置、代码生成…...

【安装及调试旧版Chrome + 多版本环境测试全攻略】

&#x1f468;&#x1f4bb; 安装及调试旧版Chrome 多版本环境测试全攻略 &#x1f310; &#xff08;新手友好版 | 覆盖安装/运行/调试全流程&#xff09; &#x1f570;️ 【背景篇】为什么我们需要旧版浏览器测试&#xff1f; &#x1f30d; &#x1f310; 浏览器世界的“…...

整数二分算法

例题&#xff1a; 给定一个按照升序排列的长度为 n 的整数数组&#xff0c;以及 q个查询。 对于每个查询&#xff0c;返回一个元素 k 的起始位置和终止位置&#xff08;位置从 0开始计数&#xff09;。 如果数组中不存在该元素&#xff0c;则返回 -1 -1。 输入格式 第一行…...

【java】this关键字

在 Java 中&#xff0c;this 是一个特殊的关键字&#xff0c;它代表当前对象的引用。简单来说&#xff0c;this 指向当前正在调用方法或构造函数的对象。this 关键字的主要作用是解决变量名冲突、访问当前对象的成员变量或方法&#xff0c;以及在构造函数中调用其他构造函数。 …...

LD_PRELOAD 绕过 disable_function 学习

借助这位师傅的文章来学习通过LD_PRELOAD来绕过disable_function的原理 【PHP绕过】LD_PRELOAD bypass disable_functions_phpid绕过-CSDN博客 感谢这位师傅的贡献 介绍 静态链接&#xff1a; &#xff08;1&#xff09;举个情景来帮助理解&#xff1a; 假设你要搬家&#x…...

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型民宿推荐系统 hive民宿可视化 民宿爬虫 大数据毕业设计(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

MySQL后端返回给前端的时间变了(时区问题)

问题&#xff1a;MySQL里的时间例如为2025-01-10 21:19:30&#xff0c;但是返回到前端就变成了2025-01-10 13:19:30&#xff0c;会出现小时不一样或日期变成隔日的问题 一般来说设计字段时会使用datetime字段类型&#xff0c;这是一种用于时间的字段类型&#xff0c;而这个类型…...

Apache Doris:一款高性能的实时数据仓库

Apache Doris 是一款基于 MPP 架构的高性能、实时分析型数据库。它以高效、简单和统一的特性著称&#xff0c;能够在亚秒级的时间内返回海量数据的查询结果。Doris 既能支持高并发的点查询场景&#xff0c;也能支持高吞吐的复杂分析场景。 Apache Doris 最初是百度广告报表业务…...

【量化-什么是信息?怎么有效的学习?关键字摘取】

到底什么是信息呢&#xff1f;我们怎么衡量信息的价值与多少呢&#xff1f;今天&#xff0c;我们就来说说这个问题。 怎么量化信息&#xff1f; 信息&#xff0c;只有量化了才能被准确地讨论&#xff0c;而量化的方法就和事件发生的概率密切相关。或者说得直白一些&#xff0…...

Java之异常体系

异常&#xff1a;异常就是代表程序出现问题 异常的继承体系&#xff1a; Error&#xff1a;严重异常&#xff0c;内存溢出等 其他异常&#xff1a;编译时异常&#xff1a;编译阶段就要进行处理的异常&#xff08;提醒程序员检查本地信息&#xff09; RuntimeException&#…...

网络运维学习笔记(DeepSeek优化版)002网工初级(HCIA-Datacom与CCNA-EI)子网划分与协议解析

文章目录 子网划分与协议解析1. VLSM与CIDR技术解析1.1 VLSM&#xff08;Variable Length Subnetwork Mask&#xff0c;可变长子网掩码&#xff09;1.2 CIDR&#xff08;Classless Inter-Domain Routing&#xff0c;无类域间路由&#xff09; 2. 子网划分方法与计算2.1 常规划分…...

【Linux知识】Linux上从源码编译到软件安装全过程详细说明

文章目录 **1. 下载源码****(1) 使用 wget 或 curl 下载****(2) 解压源码** **2. 配置编译环境****(1) 执行 ./configure 脚本**常见参数说明&#xff1a; **3. 编译源码****(1) 执行 make** **4. 安装软件****(1) 执行 make install****(2) 自定义安装路径** **5. 验证安装***…...

【尝试使用python调用Seismic unix】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、代码总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 使用seismic unix尝试建立界面&#xff0c;首先想到使用pyqt&#xff0c…...

JSON Web Token在登陆中的使用

JWT&#xff08;JSON Web Token&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在网络应用环境间安全地传递声明。它的主要用途是身份验证和信息交换。在微服务架构中&#xff0c;JWT 作为认证机制非常常见&#xff0c;特别是与 API 网关结合使用…...

CSS滚动条原理与自定义样式指南,CSS滚动条样式失效,滚动条样式无效,-webkit-scrollbar无效,overflow不显示滚动条

滚动内容形成的必要条件 CSS Overflow属性解析 MDN官方文档-Overflow属性 菜鸟教程-Overflow属性 overflow 属性控制内容溢出元素框时在对应的元素区间内是否添加滚动条。 值描述visible默认值。内容不会被修剪&#xff0c;会呈现在元素框之外。hidden内容会被修剪&#xf…...

陀螺匠·企业助手v1.8 产品介绍

陀螺匠企业助手是一套采用Laravel 9框架结合Swoole高性能协程服务与Vue.js前端技术栈构建的新型智慧企业管理与运营系统。该系统深度融合了客户管理、项目管理、审批流程自动化以及低代码开发平台&#xff0c;旨在为企业提供一站式、数字化转型的全方位解决方案&#xff0c;助力…...

【数据结构】(11) Map 和 Set

一、Map 和 Set 的简介 1、Set 和 Map Map 和 Set 是集合类框架学习的最后一部分。Map 和 Set 都是接口&#xff0c;需要通过 TreeSet、HashSet 和 TreeMap、HashMap 实例化。注意&#xff0c;Set 实现了 Collection&#xff0c;Map 并没有。 Set 存放的是键&#xff08;Key&a…...

DeepSeek 提示词:高效的提示词设计

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

【Redis】在Java中以及Spring环境下操作Redis

Java环境下&#xff1a; 1.创建maven 项目 2.导入依赖 <!-- redis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.3.2</version></dependency> 此处使用的是Jedis&…...

Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;二&#xff09;配置网络与登录本地远程Linux主机 前言一、使用命令行&#xff08;nmcli 命令&#xff09;配置网络&#xff0c;配置主机名第一步第二步修改主机名称 二、使用图形化界面&#xff08;nmtui 命令&#xff09;配…...

新数据结构(13)——I/O

字符流 字符输入流&#xff08;Reader&#xff09; 字符输入流用于从数据源&#xff08;如文件、字符串等&#xff09;读取字符数据。Reader 是所有字符输入流的抽象基类。 常用实现类 FileReader 用于从文件中读取字符数据。 InputStreamReader 将字节流转换为字符流&…...

C语言学习,希尔排序

C语言&#xff0c;希尔排序是插入排序的一种&#xff0c;也称为递减增量排序。通过比较距离较远的元素&#xff0c;然后逐渐缩小间隔&#xff0c;直到整个数组变成有序的。这种排序方法减少了插入排序&#xff0c;大数据集的移动次数&#xff0c;提高了效率。 示例&#xff1a…...

Powershell Install deepseek

前言 deepseekAI助手。它具有聊天机器人功能&#xff0c;可以与用户进行自然语言交互&#xff0c;回答问题、提供建议和帮助解决问题。DeepSeek 的特点包括&#xff1a; 强大的语言理解能力&#xff1a;能够理解和生成自然语言&#xff0c;与用户进行流畅的对话。多领域知识&…...

22、《Spring Boot消息队列:RabbitMQ延迟队列与死信队列深度解析》

Spring Boot消息队列实战&#xff1a;RabbitMQ延迟队列与死信队列深度解析 引言 在现代分布式系统中&#xff0c;消息队列承担着解耦、削峰填谷和异步通信的重要职责。本文将深入探讨Spring Boot与RabbitMQ的整合应用&#xff0c;重点解析延迟队列与死信队列的实现原理及实战…...

性能测试项目实战

项目介绍和部署 项目背景 轻商城项目是一个现在流行的电商项目。我们需要综合评估该项目中各个关键接口的性能&#xff0c;并给出优化建议&#xff0c;以满足项目上线后的性能需要。 项目功能架构 前台商城&#xff1a;购物车、订单、支付、优惠券等 后台管理系统&#xff1a;商…...

LabVIEW中显微镜下位移误差的畸变

在显微实验中&#xff0c;位移台通过电机驱动探针进行微米级精确移动&#xff0c;配合显微镜和相机实时观察探针的位置。然而&#xff0c;实验中发现&#xff0c;当电机移动相同的物理距离时&#xff0c;图像中探针的像素位移量存在显著的非线性偏差。经测试&#xff0c;电机的…...

Spark MLlib中的机器学习算法及其应用场景

Spark MLlib是Apache Spark框架中的一个机器学习库&#xff0c;提供了丰富的机器学习算法和工具&#xff0c;用于处理和分析大规模数据。以下是Spark MLlib中的机器学习算法及其应用场景的详细描述&#xff1a; 一、Spark MLlib中的机器学习算法 分类算法&#xff1a; 逻辑回…...

Angular 中获取 DOM 节点的几种方法

文章目录 1. 使用ViewChild获取单个 DOM 节点2. 使用ViewChildren获取多个 DOM 节点3. 使用ElementRef直接访问 DOM4. 使用Renderer2操作 DOM5. 总结 在 Angular 开发中&#xff0c;虽然框架鼓励我们通过组件和模板来操作 DOM&#xff0c;但在某些情况下&#xff0c;直接访问和…...

R Excel 文件:高效数据处理的利器

R Excel 文件:高效数据处理的利器 在数据分析领域,R语言因其强大的统计分析和可视化功能而备受推崇。而R Excel文件,作为R语言与Excel的桥梁,使得数据在R和Excel之间的高效转换成为可能。本文将详细介绍R Excel文件的概念、应用场景以及操作方法。 一、R Excel文件的概念…...

手撕跳表/数据结构

昨天leetcode每日一题是跳表&#xff0c;之前学redis就没去写跳表&#xff0c;这次就逃不过了。 这里使用了len数组&#xff0c;来表示每个数字之间的间隔&#xff0c;方便复杂的查询功能。 主要问题有 为什么len数组记录的是数字之间的间隔&#xff0c;不是每一层从头到尾…...

在 Vue 中处理跨域请求:全面解析与实践指南

在 Vue 中处理跨域请求&#xff1a;全面解析与实践指南 在现代 Web 开发的复杂生态中&#xff0c;跨域请求&#xff08;CORS&#xff09;如同一个无处不在的难题&#xff0c;时刻考验着开发者的技术能力。当我们构建基于 Vue.js 的前端应用时&#xff0c;这一问题尤为凸显。因为…...

爬虫与反爬-Ja3指纹风控(Just a moment...)处理方案及参数说明

概述&#xff1a;本文将针对Ja3 指纹检测风控进行处理&#xff0c;举例了一个案例并使用两种不同的破解方案进行突破&#xff0c;同时深入了解指纹间不同字符所代表的含义 指纹检测背景&#xff1a; 1、每一个设备、软件都有独属于自己的设备信息、版本号、加密算法、椭圆算法…...

WPF-Avalonia实践一两个页面的相关传递

文章目录 注册两个ViewModel关联-Interaction在 Avalonia 框架中的 Interaction作用目的典型的使用场景显示对话框:文件操作:定义交互属性示例代码视图层处理交互总结例子-实现两个界面信息传递Interaction注册在主VIEWModel中注册异步方法按钮主viewModel对应的显示xaml-使用…...

无人机实战系列(三)本地摄像头+远程GPU转换深度图

这篇文章将结合之前写的两篇文章 无人机实战系列&#xff08;一&#xff09;在局域网内传输数据 和 无人机实战系列&#xff08;二&#xff09;本地摄像头 Depth-Anything V2 实现了以下功能&#xff1a; 本地笔记本摄像头发布图像 远程GPU实时处理&#xff08;无回传&#…...

LeetCode:数组异或操作

数组异或操作 描述 给你两个整数&#xff0c;n 和 start 。 数组 nums 定义为&#xff1a;nums[i] start 2*i&#xff08;下标从 0 开始&#xff09;且 n nums.length 。 请返回 nums 中所有元素按位异或&#xff08;XOR&#xff09;后得到的结果。 示例 1&#xff1a;…...

【前端】Axios AJAX Fetch

不定期更新&#xff0c;建议关注收藏点赞。 目录 AxiosAJAXCORS 允许跨域请求 Fetch Axios axios 是一个基于 Promise 的 JavaScript HTTP 客户端&#xff0c;用于浏览器和 Node.js 中发送 HTTP 请求。它提供了一个简单的 API 来发起请求&#xff0c;并处理请求的结果。axios …...

C++ 继承与运算符重载的简单练习

1.长方形的继承类 #include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #include <sstream> #include <vector> #include <memory>using namespace std; class AB{ private:int a;int …...

pycharm技巧--鼠标滚轮放大或缩小 Pycharm 字体大小

1、鼠标滚轮调整字体 设置 Ctrl 鼠标滚轮调整字体大小 备注&#xff1a; 第一个是活动窗口&#xff0c;即缩放当前窗口 第二个是所有编辑器窗口&#xff0c;即缩放所有窗口的字体 2、插件 汉化包&#xff1a; Chinese Simplified 包...

deepseek 导出导入模型(docker)

前言 实现导出导入deepseek 模型。deepseek 安装docker下参考 docker 导出模型 实际生产环境建议使用docker-compose.yml进行布局&#xff0c;然后持久化ollama模型数据到本地参考 echo "start ollama" docker start ollama#压缩容器内文件夹&#xff0c;然后拷贝…...

STM32——HAL库开发笔记21(定时器2—输出比较)(参考来源:b站铁头山羊)

本文主要讲述输出比较及PWM信号相关知识。 一、概念 所谓输出比较&#xff0c;就是通过单片机的定时器向外输出精确定时的方波信号。 1.1 PWM信号 PWM信号即脉冲宽度调制信号。PWM信号的占空比 &#xff08;高电压 所占周期 / 整个周期&#xff09; * 100% 。所以PWM信号…...

【报错解决】vue打开界面报错Uncaught SecurityError: Failed to construct ‘WebSocket‘

问题描述&#xff1a; vue运行时正常&#xff0c;但是打开页面后报错 Uncaught SecurityError: Failed to construct WebSocket: An insecure WebSocket connection may not be initiated from a page loaded over HTTPS. 解决方案&#xff1a; 在项目列表中的public下的ind…...

【初探数据结构】时间复杂度和空间复杂度

&#x1f4ac; 欢迎讨论&#xff1a;在阅读过程中有任何疑问&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;如果你觉得这篇文章对你有帮助&#xff0c;记得点赞、收藏&#xff0c;并分享给更多对数据结构感…...

将DeepSeek接入vscode的N种方法

接入deepseek方法一:cline 步骤1:安装 Visual Studio Code 后,左侧导航栏上点击扩展。 步骤2:搜索 cline,找到插件后点击安装。 步骤3:在大模型下拉菜单中找到deep seek,然后下面的输入框输入你在deepseek申请的api key,就可以用了 让deepseek给我写了一首关于天气的…...

《TransMamba:一种混合Transformer-Mamba网络用于单图像去雨》学习笔记

paper&#xff1a;2409.00410 GitHub&#xff1a;sunshangquan/TransMamba 目录 摘要 1、介绍 2、相关工作 2.1 单图像去雨 2.2 视觉Transformer 2.3 光谱域中的Transformer 2.4 光谱域中的图像恢复 2.5 视觉Mamba 3、方法 3.1 整体网络架构 3.2 光谱域变换块&am…...

危化品经营单位安全管理人员的职责及注意事项

危化品经营单位安全管理人员肩负着保障经营活动安全的重要责任&#xff0c;以下是其主要职责及注意事项&#xff1a; 职责 1. 安全制度建设与执行&#xff1a;负责组织制定本单位安全生产规章制度、操作规程和生产安全事故应急救援预案&#xff0c;确保这些制度符合国家相关法…...

安装Redis并把Redis设置成windows下的服务然后进行Redis实例演示

目录 &#xff08;一&#xff09;安装Redis &#xff08;二&#xff09;Redis设置成windows下的服务 1、把redis设置成windows下的服务 2、设置服务命令 &#xff08;三&#xff09;Redis实例演示 1、Redis插入数据 2、Redis修改数据 3、Redis删除数据 4、Redis查询数…...

基于 Python 的项目管理系统开发

基于 Python 的项目管理系统开发 一、引言 在当今快节奏的工作环境中&#xff0c;有效的项目管理对于项目的成功至关重要。借助信息技术手段开发项目管理系统&#xff0c;能够显著提升项目管理的效率和质量。Python 作为一种功能强大、易于学习且具有丰富库支持的编程语言&…...

牛客周赛 Round 82(思维、差分、树状数组、大根堆、前后缀、递归)

文章目录 牛客周赛 Round 82&#xff08;思维、差分、树状数组、大根堆、前后缀、递归&#xff09;A. 夹心饼干B. C. 食堂大作战&#xff08;思维&#xff09;D. 小苯的排列计数(差分、树状数组)E. 和和&#xff08;大根堆&#xff0c;前缀和&#xff09;F. 怎么写线性SPJ &…...