sql优化:为什么通常选用根据id查询而不是根据name?

news2024/11/25 5:01:08

先来看一个最常见的问题,下面两个sql语句哪个效率更高一些?

select * from user where id = 1;
select * from user where name ='张三'

在没有给name加索引的时候,id是有主键索引的,也就是聚集索引,这样就是一个B+Tree结构,很快就会定位到id,而name则是一行一行进行遍历

给name加上索引以后,就会产生一个二级索引,这样就会出现回表查找,它会先在name的B+Tree结构中查找到张三这个字段,接着想要全部的数据的话,还要根据张三对应的id进行查找id所在的B+Tree结构找到对应的id下面的行

 

效率肯定慢于直接查找id

什么是回表查找,可以查看这一篇: 深入了解数据库的索引分类以及回表查询原理_ADRU的博客-CSDN博客

 

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

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

相关文章

成为一名数字IC后端工程师需要掌握哪些技能?(内附学习视频)

众所周知,数字后端设计是IC设计中必不可少的一个环节,数字后端工程师是将门级网表转换成标准的GDS文件,又称为设计实现或物理设计。正所谓前端保证功能正确,后端保证芯片的实现正确。 数字后端工程师是做什么的? 数字…

操作系统启动相关概念(BIOS、MBR、GPT、BRUB)

不管是 Windows 还是 Linux 操作系统,底层设备一般均为物理硬件,操作系统启动之前会对硬件进行检测,然后硬盘引导启动操作系统,如下为操作系统启动相关的各个概念。 一、BIOS 基本输入输出系统(Basic Input Output Sy…

android studio(火烈鸟版本)使用protobuf

一、简介 Protobuf 全称:Protocol Buffers,是 Google 推出的一种与平台无关、语言无关、可扩展的轻便高效的序列化数据存储格式,类似于我们常用的 xml 和 json。 二、特点 Protobuf 用两个字总结:小,快。用 Protobu…

PS 裁剪工具及工具栏配置讲解

我们还是日常打开PS软件 首先 我们右侧菜单中右键 找到裁剪工具组 当我们选择裁剪工具时 图像边上会出现一个白色的框框 用法比较简单 我们可以鼠标拖住一个边 然后 往里拖动 将不要的东西剪掉 然后 鼠标双击 即可保存结果 然后 我这里撤回一下 这些部分还有用 还有一个…

安装nvm管理node

1.首先卸载已存在的node cmd输入node提示:‘node’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 2.安装nvm 安装地址 :Releases coreybutler/nvm-windows GitHub 本人选择1.1.7 输入nvm打印出了nvm的指令列表,说明…

【Nodejs】原生nodejs路由、获取参数、静态目录

1.路由 index.js // 启动服务 const server require(./server.js); //路由模块 const route require(./route.js); //api const apiRouter require(./api.js);server.use(route); server.use(apiRouter); server.start();server.js const http require(http);//创建一个大…

“解锁高效水资源管理:灌区管理系统一图详解“

平台概述 柳林灌区管理系统平台以物理灌区为单元、时空数据为底座、数学模型为核心、水利知识为驱动,对物理灌区全要素和建设运行全过程进行数字映射、智能模拟、前瞻预演,与物理灌区同步仿真运行、虚实交互、迭代优化,实现对物理灌区的实时…

ChatGPT和搜索引擎哪个更好用

目录 ChatGPT和搜索引擎的概念 ChatGPT和搜索引擎的作用 ChatGPT的作用 搜索引擎的作用 ChatGPT和搜索引擎哪个更好用 总结 ChatGPT和搜索引擎的概念 ChatGPT是一种基于对话的人工智能技术,而搜索引擎则是一种用于在互联网上查找和检索信息的工具。它们各自具…

脑电信号处理与特征提取——2.脑电的神经起源与测量(夏晓磊)

目录 二、脑电的神经起源与测量 2.1 脑电的神经起源 2.2 脑电的测量 二、脑电的神经起源与测量 2.1 脑电的神经起源 脑电起源于大脑皮层大量神经元的同步突触活动,主要贡献来自锥体细胞。 静息电位:内负外正,K内流。 动作电位&…

stm8s003_切换时钟流程分析、配置外部晶振(库函数调用)

1、stm8s003的时钟 复位后,默认使用内部高速时钟HSI(16MHz)的8分频,也就是2MHz. 代码开始运行,也就是运行到main函数,我们就可以修改时钟源为外部晶振。 2、切换时钟流程分析,参考官方应用手册…

联想拯救者Y9000X 2023 i9+32G+RTX4070,真香!

拯点新品!i932GRTX4070,真香! 联想拯救者Y9000X 2023搭载16英寸专业超竞屏,机身最薄处仅为17.6mm,轻盈即刻随行,让你开黑随时开始! 高刷新率,高分辨率,广色域,高亮度。强…

如何有效跟踪你的计费时间?

对于自由职业者、小型企业和远程团队来说,时间跟踪是必需的。了解自己在单个项目或任务上投入了多少时间,可以帮助他们有效管理资源和优化工作流程。 然而,在向客户收费时,时间跟踪多了一层复杂性:不仅需要跟踪所花费…

【论文阅读】DEPIMPACT:反向传播系统依赖对攻击调查的影响(USENIX-2022)

Fang P, Gao P, Liu C, et al. Back-Propagating System Dependency Impact for Attack Investigation[C]//31st USENIX Security Symposium (USENIX Security 22). 2022: 2461-2478. 攻击调查、关键边、入口点 开源:GitHub - usenixsub/DepImpact 目录 1. 摘要2. 引…

re学习(23)BUUCTF 刮开有奖(中间变量的获取)

INT_PTR __stdcall DialogFunc(HWND hDlg, UINT a2, WPARAM a3, LPARAM a4) {const char *v4; // esiconst char *v5; // ediint v7[2]; // [esp8h] [ebp-20030h] BYREF 虽然看名称不连续,但是通过看偏移地址,可知,这些变量在内存中是连续的&…

3.python设计模式【工厂模式】

1.简单工厂模式 内容:不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品的实例。角色: 工厂角色(creator)抽象产品角色(product)具体产品角色 UML图 : 举个例…

Go基础快速入门

目录 一、变量相关基础语法 1、变量的定义以及赋值 2、变量的交换 3、匿名变量 4、变量的作用域 二、常量 三、基本数据类型 1、常见数据类型 2、数据类型的转换 四、运算符 五、函数 函数高级用法 函数也是一个类型 函数也是一个变量,也可以赋值 高…

视频监控汇聚平台EasyCVR视频监控录像的3种方式介绍

视频监控综合管理平台EasyCVR可以实现海量资源的接入、汇聚、计算、存储、处理等,平台具备轻量化接入能力,可支持多协议方式接入,包括主流标准协议GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Eho…

STM32MP157驱动开发——按键驱动(tasklet)

文章目录 “tasklet”机制:内核函数定义 tasklet使能/ 禁止 tasklet调度 tasklet删除 tasklet tasklet软中断方式的按键驱动程序(stm32mp157)tasklet使用方法:button_test.cgpio_key_drv.cMakefile修改设备树文件编译测试 “tasklet”机制: …

谁说dubbo接口只能Java调用,我用Python也能轻松稿定

由于公司使用基于Java语言的Dubbo技术栈,而本人对Python技术栈更为熟悉。为了使不懂JAVA代码的同学也能进行Dubbo接口层的测试,总结一个通过python实现dubbo接口调用的实现方案。 01、实现原理 根据Dubbo官方文档中提到的:dubbo可以通过tel…

裂缝处理优化策略

裂缝缺陷检测:检测道路中的裂缝,无项目背景 数据:分为两类,正常、裂缝 方案介绍 数据预处理 将原始数据标签处理为两类,正常和裂缝原始图片均为320*480,使用的显卡为2080,内存足够,不进行图片大小调整模型后处理 二分类使用softmax处理,使用最大值作为结果分类效…