MYSQL查询规范:索引

news2024/11/17 22:07:38

前言

        工作有段时间了,现在看以前写的代码、sql之类的,实属辣眼睛。

        这里将给出一些目前遇到的MYSQL查询规范(索引),并长期更新

索引

        众所周知,索引能提高数据查询效率(前提是该字段被用在WHERE、JOIN、ORDER BY 和 GROUP BY里面),用空间来换取查询速度

        主键不需要创建索引(实际上,主键本身就是一个特殊类型的唯一索引)

        这里推荐【UNIQUENORMAL】两种索引

        1. UNIQUE 索引

      特点

        唯一性: UNIQUE 索引确保索引列中的每个值都是唯一的,即没有重复值。它不仅加速查询,还确保数据的完整性。
        主键和唯一约束: 主键(PRIMARY KEY)是一种特殊类型的 UNIQUE 索引。主键的值必须唯一且不能为空(NOT NULL),而普通的 UNIQUE 索引允许有 NULL 值,但每个 NULL 值也必须是唯一的(注意:在 MySQL 中,不同的 NULL 值被视为不同)。


       使用场景

        数据完整性: 当你需要确保某列的数据是唯一的,比如用户邮箱、身份证号码等。
        主键字段: 主键列自然使用 UNIQUE 索引来确保唯一性。

 

        2. NORMAL 索引 (通常指 INDEX 或 KEY)

        特点

        非唯一性: NORMAL 索引(也称为普通索引或非唯一索引)允许索引列中包含重复值。它主要用于加速查询操作。
        默认索引: 如果你创建索引但没有指定 UNIQUE,那么创建的就是普通索引。

        使用场景

        加速查询: 当你需要对某个列进行快速查找、排序或连接时使用。例如,基于用户的创建时间进行查询。
        非唯一字段: 对于那些数据可能重复的列,如用户的国家、状态等。

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

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

相关文章

Springboot邮件发送:如何配置SMTP服务器?

Springboot邮件发送集成方法?如何提升邮件发送性能? 对于使用Springboot的开发者来说,配置SMTP服务器来实现邮件发送并不是一件复杂的事情。AokSend将详细介绍如何通过配置SMTP服务器来实现Springboot邮件发送。 Springboot邮件发送&#x…

【SpringBoot】SpringBoot中的异常处理和异常跳转页面

目录 1.异常跳转页面 1.1 概念 1.2 使用 2.异常处理 2.1 概念 2.2 通过ExceptionHandler 注解处理异常(局部处理) 2.3 通过ControllerAdvice 注解处理异常(全局处理) 2.4 通过 SimpleMappingExceptionResolver 对象处理…

AI大模型达人秘籍:豆瓣9.2分推荐必读!

有很多程序员正在AIGC赛道中默默发财,有通过短视频做内容爆火,接广告的;有卖AI解决方案的;有卖AI课程的;也有卖AI产品,慢慢做大做强的…更不必说,那些拿下“人均年薪100万”大模型相关岗位的“赢…

多模态 AI 是零售业的未来吗?使用 GPT-4 Vision 和 MongoDB 矢量搜索探索智能产品发现

生成式人工智能如何重新定义零售盈利能力 欢迎来到雲闪世界。想象一下这样的购物体验:您上传了一张心仪服装或商品的照片。片刻之后,您便会收到来自您喜爱的商店的个性化、AI 驱动的类似商品推荐。这是一种革命性的零售体验,由一款创新应用实…

从零到一,数据恢复不求人!2024年四款全免费神器,轻松搞定

活在这个电脑手机满天飞的时代,我们天天跟数据打交道。工作文件、家庭照片、视频,这些都是我们的宝贝,一旦没了或者出问题,那可真够呛。好在我们有高科技帮忙,数据恢复现在也不是啥大问题。今儿个,我要给你…

数说故事 | 2024巴黎奥运会,“谷子文化”出圈了

全红婵金牌,全网沸腾。 摘金之后全妹的痛包(itabag,是指挂满人物徽章和玩偶等周边的包包,因为这样的包会让人感觉“奇怪和夸张,日语的“痛”有此含义,所以被称为“痛包”),也让二次…

多模态大模型(MLLM):架构篇

**【导读】**多模态大模型主要是以LLM作为核心决策模块,主流架构有两种:LLM as Discrete Scheduler/Controller和LLM as joint part of system,第一种LLM充当任务调度的作用,第二种LLM通过Encoder-LLM-Decoder结构作为系统的关键连…

探索Python性能优化的神秘力量:Line Profiler

文章目录 探索Python性能优化的神秘力量:Line Profiler第一部分:背景第二部分:库简介第三部分:安装指南第四部分:基本使用方法第五部分:实际应用场景场景1:数据分析场景2:机器学习模…

Docker 离线下载镜像(本地)

最近很多离线下载镜像的网站挂了,可以选择 docker hub 下载上传到服务器 Docker desktop image-tools ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/04174b8cefe3445596e09b1e82d9253b.png 保存后,就可以上传服务器,通过 dock…

音频合成剪辑工具推荐哪个?5款高效工具不容小觑

在探索音乐和声音的世界中,我发现了几款令人兴奋的音频剪辑软件,它们不仅功能强大,而且完全免费。作为一个热衷于音频制作的爱好者,我深知找到一款既经济又高效的工具是多么重要。 今天,我想跟大家分享我的一些发现&a…

jeecg部署后端到ubuntu

安装java17 java -versionsudo apt updatesudo apt install openjdk-17-jre-headless安装tomcat 更新源 sudo apt update在apt中搜索tomcat sudo apt search tomcat安装tomcat10和tomcat10-admin sudo apt install tomcat9 tomcat9-admin启动tomcat sudo systemctl start…

C语言小练习(伍)

练习: 利用指针变量将一个数组中的数据反向输出。 void renew(int *p,int len) {for(int i len - 1;i > 0;i--){printf("%d",*(pi));} }int main() {int a[5] {1,2,3,4,5};int len1 sizeof(a) / sizeof(int);renew(a,len1);return 0; }运行结果: …

AI文生图新纪元:FLUX.1领衔,多款顶尖模型汇聚趋动云社区

前言 近期,SD(Stable Diffusion)原班人马(跳槽后新成立团队——Black Forest Lab)开源模型 FLUX.1,或成文生图模型新霸主! FLUX.1 系列包含 pro、dev、schnell 3 个模型。主要在文字生成、复杂指令遵循和人手生成上具备优势。 FLUX.1pro&a…

爆学C++之类和对象(上)

1.类的定义 类定义格式 • class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的⽅法或者成员函数。 • …

IDEA中设置类和方法的注释

分两步设置: 第一个设置是创建类的时候自动加的注解 第二个设置是快捷键为方法增加的注解 类的时候自动加的注解设置 注释模版 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} ! "")package ${PACKAGE_NAME};#end /** * Description: TODO * Auth…

IOPaint部署,在服务器Ubuntu22.04系统下——点动科技

这里写目录标题 一、ubuntu22.04基本环境配置1.1 更换清华Ubuntu镜像源1.2 更新包列表:2. 安装英伟达显卡驱动2.1 使用wget在命令行下载驱动包2.2 更新软件列表和安装必要软件、依赖2.2 卸载原有驱动2.3 安装驱动2.4 安装CUDA2.5 环境变量配置 二、安装miniconda环境…

2024年第九届机器人与自动化工程国际会议(ICRAE 2024)即将召开!

2024年第九届机器人与自动化工程国际会议(ICRAE 2024)将于11月15-17日在新加坡举办。ICRAE 2024会议旨在为机器人与自动化工程等领域的专家学者建立一个广泛有效的学术交流平台,以便让参会人员及时了解行业发展动态、掌握最新技术,促使我们快速、准确地解…

在scss中如何使用hover(Vue项目)

在scss中如何使用hover(Vue项目) 最近在Vue项目中,想实现在鼠标悬浮时,修改鼠标指向的模块样式,但使用的是scss,写法是什么样的呢? 效果图: 实现代码: .content {widt…

Android系统和开发--安全性和权限管理 SELinux 策略 安全架构

学习android权限知识 SElinux chmod -R 777 ./ setenforce 0 adb root su fastboot oem at-unlock-vboot adb disable-verity Android权限 Android系统是基于Linux内核构建的,因此它继承了Linux的权限管理机制。Android应用需要通过声明权限来访问系统的某些功能&…

使用docker compose一键部署redis服务

使用docker compose一键部署redis服务 1、创建安装目录 mkdir /data/redis/ -p && cd /data/redis2、创建docker-compose.yml文件 version: 3 services:redis:image: registry.cn-hangzhou.aliyuncs.com/xiaopangpang/redis:7.0.5container_name: redisrestart: al…