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

mysql---索引

概要

索引:排序的列表,列表当中存储的是索引的值和包含这个值的数据所在的行的物理地址
作用:加快查找速度

注:索引要在创建表时尽量创建完全,后期添加影响变动大。

索引也需要占用磁盘空间,innodb表数据文件本身也是索引,myisam索引和数据文件是分离的。
更新一个有索引的表比更新一个无索引表,花费的时间更多。更新了值,也就是更新索引。

索引的作用:

1、利用索引数据库可以快速定位,大大加快查询速度
2、表的数据很多,查询需要关联多个表,此时索引提高查询速度
3、加快表与表连接的速度
4、使用分组和排序时,可以大大减少时间
5、提高数据库恢复数据时的速度

索引创建的原则

1、有索引,数据会先进行索引查询,然后定位数据,索引使用不当,反而会增加数据库的负担
主键,外键必须有索引(创建好了主键和外键自动就是索引,而不需要额外的声明)
2、一个表超过300行记录,必须要有索引,否则会遍历表的所有数据

3、互相之间有关联的表,在关联字段应该设置索引
4、唯一性太差的字段,不适合做索引
5、更新太频繁的字段,不适合做索引
6、经常被where条件匹配的字段,表数据比较多的应该是创建索引
7、在经常进行group by (分组) order by(排序)的字段上要建立索引
8、索引的列的字段越小越好,长文本字段不适合建立索引


索引的类型

1、B-树索引 BTREE

树型结构的索引,大部分数据库的默认索引类型。
根节点:书的最顶端的分支节点
分支节点:指向索引里其他的分支节点,也可以是叶子节点


2、哈希索引

散列索引 把任意长度的输入,通过散列算法变换成固定长度的输出。散列值---分别对应数据里的列和行,不能排序(排序时索引是失效的)


mysql 默认引擎 innodb 也就是btree
memory引擎可以支持hash,也是默认索引
先算散列值,然后再对应,速度比较慢,比btree
hash的索引匹配: = in () <= >


3、orcale

默认都是树形结构的索引

创建索引及索引类型(默认innodb)

格式:create index 索引名 on 表名 (属性) USING hash;

修改引擎类型

格式:alter table 表名 engine=innodb/memory;

查看表索引

格式:show index from 表名; 

Non_unique 可唯一为0 可重复为1 

新增普通索引

格式:alter table 表名 add index 索引名(属性名);

 

 

索引类型

创建表时创建索引的格式

1559ed705aee4be2a70821504c7bd2d8.png

1、普通索引

普通索引:添加格式

 

格式:ALTER TABLE  表名 add index 索引名(属性名);

格式:CREATE INDEX  索引名 ON 表名 (属性名);

2、主键索引

创建表的指定的主键就是索引,添加主键自动的就是主键索引。
                  主键要素:值唯一 一个表只能有一个主键 不允许有空值 创建主键,自动主键索引。

主键索引:添加格式

格式:ALTER TABLE  表名 primary key (属性名);

3、唯一索引

与普通索引类似,唯一索引的每个值都是唯一,唯一值允许为空值,空值多了就会失效

唯一索引:添加格式

unique 与普通索引类似,唯一索引的每个值都是唯一,唯一值允许为空值,空值多了就会失效
格式:CREATE UNIQUE INDEX 索引名 on 表名 (属性名);
格式:ALTER TABLE  表名 add unique 索引名(属性名);

4、全文索引

适合在模糊查询的时候使用,可以在一边文章中检索文本。

全文索引:添加格式

格式:alter table 表名 add FULLTEXT 索引名(属性名);
格式:CREATE FULLTEXT INDEX 索引名 on 表名 (属性名);

5、联合索引

指定一个索引名,一个索引名对应多个列名。

联合索引,从左到右侧开始,不能跳过索引,否则索引会失效。

联合索引:添加格式

格式:alter table 表名 add INDEX  索引名(属性名1,属性名2);
格式:create index 索引名 on 表名 (属性名1,属性名2);
 

查看是否用到索引(EXPLAIN)

EXPLAIN SELECT语句;

例:EXPLAIN SELECT * from 表名 where 列名 like '模糊过滤条件';

删除索引

格式:DROP index 索引名 on 表名;

 

 

索引失效的几种情况

1、范围查询,有可能右侧的索引会失效。

2、如果索引是字符串,不加引号,索引会失效
3、使用or 语句索引一定会失效,使用or作为条件,mysql 无法同时使用多个索引。

4、有时候索引会失效 where is null 数据的绝大多数都是空值,索引失效
                                 where is not null 数据多数为不空,索引失效
                                             in age 索引生效
                                             not in age 索引失效

如果检索响应时间过长,怎么办?(三步走)

1、首先查缓存,是否请求到后端数据库
2、再看索引,请求的列值不是默认索引,添加即可  用explain 查看索引的使用情况
3、指定判定内容过多

 

创建表的因素(四个点)

·关联程度3张表,选好关联字段
·每个字段的长度
·设置合理的索引列
·表数据要控制在合理的范围之内,可以在牺牲一定的性能的条件下,满足需求即可。大于5s考虑,大于10s一般是出了问题(缓存失效、缓存击穿、缓存雪崩)

 

 

相关文章:

mysql---索引

概要 索引&#xff1a;排序的列表&#xff0c;列表当中存储的是索引的值和包含这个值的数据所在的行的物理地址 作用&#xff1a;加快查找速度 注&#xff1a;索引要在创建表时尽量创建完全&#xff0c;后期添加影响变动大。 索引也需要占用磁盘空间&#xff0c;innodb表数据…...

微信小程序——简易复制文本

在微信小程序中&#xff0c;可以使用wx.setClipboardData()方法来实现复制文本内容的功能。以下是一个示例代码&#xff1a; // 点击按钮触发复制事件 copyText: function() {var that this;wx.setClipboardData({data: 要复制的文本内容,success: function(res) {wx.showToa…...

【51单片机】矩阵键盘与定时器(学习笔记)

一、矩阵键盘 1、矩阵键盘概述 在键盘中按键数量较多时&#xff0c;为了减少I/O口的占用&#xff0c;通常将按键排列成矩阵形式 采用逐行或逐列的“扫描”&#xff0c;就可以读出任何位置按键的状态 2、扫描的概念 数码管扫描&#xff08;输出扫描&#xff09;&#xff1a;…...

vue 中使用async await

在程序中使用同步的方式来加载异步的数据的方式: async function() {let promise new Promise((resolve, reject) > {resolve(res);}).then(re > {return re; });await promise; }...

C语言学习之内存区域的划分

内存区域的划分:32位OS可以访问的虚拟内存空间为0~4G&#xff1b;一、内核空间&#xff1a;3~4G;二、用户空间0~3G;栈区&#xff1a;局部变量在栈区分配、由OS负责分配和回收堆区&#xff1a;由程序员手动分配&#xff08;malloc函数&#xff09;和回收(free函数)&#xff1b;静…...

Unity Animator cpu性能测试

测试案例&#xff1a; 场景中共有4000个物体&#xff0c;挂在40个animtor 上&#xff0c;每个Animator控制100个物体的动画。 使用工具&#xff1a; Unity Profiler. Unity 版本&#xff1a; unity 2019.4.40f1 测试环境&#xff1a; 手机 测试过程&#xff1a; 没有挂…...

数据结构 - 顺序表ArrayList

目录 实现一个通用的顺序表 总结 包装类 装箱 / 装包 和 拆箱 / 拆包 ArrayList 与 顺序表 ArrayList基础功能演示 add 和 addAll &#xff0c;添加元素功能 ArrayList的扩容机制 来看一下&#xff0c;下面的代码是否存在缺陷 模拟实现 ArrayList add 功能 add ind…...

【Echarts】玫瑰饼图数据交互

在学习echarts玫瑰饼图的过程中&#xff0c;了解到三种数据交互的方法&#xff0c;如果对您也有帮助&#xff0c;不胜欣喜。 一、官网教程 https://echarts.apache.org/examples/zh/editor.html?cpie-roseType-simple &#xff08;该教程数据在代码中&#xff09; import *…...

k8s、pod

Pod k8s中的port【端口&#xff1a;30000-32767】 port &#xff1a;为Service 在 cluster IP 上暴露的端口 targetPort&#xff1a;对应容器映射在 pod 端口上 nodePort&#xff1a;可以通过k8s 集群外部使用 node IP node port 访问Service containerPort&#xff1a;容…...

一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium

大家好&#xff0c;我是python222小锋老师。前段时间卷了一套 Python3零基础7天入门实战 以及1小时掌握Python操作Mysql数据库之pymysql模块技术 近日锋哥又卷了一波课程&#xff0c;python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium&#xff0c;文字版视频版。1…...

睿趣科技:想知道开抖音小店的成本

随着互联网的发展&#xff0c;越来越多的人开始尝试通过开设网店来创业。抖音作为目前最受欢迎的短视频平台之一&#xff0c;也提供了开店的功能。那么&#xff0c;开一家抖音小店需要多少成本呢&#xff1f; 首先&#xff0c;我们需要了解的是&#xff0c;抖音小店的开店费用是…...

python项目部署代码汇总:目标检测类、人体姿态类

一、AI健身计数 1、图片视频检测 &#xff08;cpu运行&#xff09;&#xff1a; 注&#xff1a;左上角为fps&#xff0c;左下角为次数统计。 1.哑铃弯举&#xff1a;12&#xff0c;14&#xff0c;16 详细环境安装教程&#xff1a;pyqt5AI健身CPU实时检测mediapipe 可视化界面…...

力扣每日一题92:反转链表||

题目描述&#xff1a; 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输…...

Vue+OpenLayers从入门到实战进阶案例汇总目录,兼容OpenLayers7和OpenLayers8

本篇作为《VueOpenLayers入门教程》和《VueOpenLayers实战进阶案例》所有文章的二合一汇总目录&#xff0c;方便查找。 本专栏源码是由OpenLayers结合Vue框架编写。 本专栏从Vue搭建脚手架到如何引入OpenLayers依赖的每一步详细新手教程&#xff0c;再到通过各种入门案例和综合…...

C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除

目录 一、添加数据 二、修改数据 三、删除数据 四、添加、修改和删除的源码 五、生成效果 1.VS和SSMS原始记录 2.删除ID2和5的记录 3.添加记录ID2、5和8 4.修改ID3和ID4的记录 用LINQtoSQL管理SQL Server数据库时&#xff0c;主要有添加、修改和删除3种操作。 项目中创…...

飞致云及其旗下1Panel项目进入2023年第三季度最具成长性开源初创榜单

2023年10月26日&#xff0c;知名风险投资机构Runa Capital发布2023年第三季度ROSS指数&#xff08;Runa Open Source Startup Index&#xff09;。ROSS指数按季度汇总并公布在代码托管平台GitHub上年化增长率&#xff08;AGR&#xff09;排名前二十位的开源初创公司和开源项目。…...

Maven实战-私服搭建详细教程

Maven实战-私服搭建详细教程 1、为什么需要私服 首先我们为什么需要搭建Maven私服&#xff0c;一切技术来源于解决需求&#xff0c;因为我们在实际开发中&#xff0c;当我们研发出来一个 公共组件&#xff0c;为了能让别的业务开发组用上&#xff0c;则搭建一个远程仓库很有…...

uniapp-自定义表格,右边操作栏固定

uniapp-自定义表格&#xff0c;右边操作栏固定 在网上找了一些&#xff0c;没找到特别合适的&#xff0c;收集了一下其他人的思路&#xff0c;基本都是让左边可以滚动&#xff0c;右边定位&#xff0c;自己也尝试写了一下&#xff0c;有点样式上的小bug&#xff0c;还在尝试修…...

基于Electron27+React18+ArcoDesign客户端后台管理EXE

基于electron27.xreact18搭建电脑端exe后台管理系统模板 electron-react-admin 基于electron27整合vite.jsreact18搭建桌面端后台管理程序解决方案。 前几天有分享electron27react18创建跨平台应用实践&#xff0c;大家感兴趣可以去看看。 https://blog.csdn.net/yanxinyun1990…...

QT5交叉编译保姆级教程(arm64、mips64)

什么是交叉编译&#xff1f; 简单说&#xff0c;就是在当前系统平台上&#xff0c;开发编译运行于其它平台的程序。 比如本文硬件环境是x86平台&#xff0c;但是编译出来的程序是在arm64架构、mips64等架构上运行 本文使用的操作系统&#xff1a;统信UOS家庭版22.0 一、安装…...

Kubernete

简介 Kubernetes&#xff08;简称 K8s&#xff09;是一个 开源的容器编排平台&#xff0c;用于自动化 部署、扩展、管理容器化应用 的工具。 假设你有很多个应用&#xff08;比如用 Docker 打包的服务&#xff09;&#xff0c;Kubernetes 能帮你&#xff1a; ✅ 自动部署&#…...

如何用GeoPort轻松实现iOS虚拟定位?2025年完整使用指南

如何用GeoPort轻松实现iOS虚拟定位&#xff1f;2025年完整使用指南 【免费下载链接】GeoPort GeoPort: Your Location, Anywhere! The iOS location simulator 项目地址: https://gitcode.com/gh_mirrors/ge/GeoPort GeoPort是一款强大的iOS虚拟定位工具&#xff0c;让你…...

Pure Live:3大平台聚合,打造你的专属纯净直播空间

Pure Live&#xff1a;3大平台聚合&#xff0c;打造你的专属纯净直播空间 【免费下载链接】pure_live A Flutter project can make you watch live with ease. 项目地址: https://gitcode.com/gh_mirrors/pu/pure_live 你是否厌倦了在多个直播应用间来回切换&#xff1f…...

在家办公效率低?试试这个“空间切换”技巧

一、软件测试从业者居家办公的效率困境对于软件测试从业者而言&#xff0c;居家办公看似摆脱了办公室的嘈杂与束缚&#xff0c;实则面临着诸多独特的效率挑战。测试工作本身就需要高度的专注与严谨&#xff0c;从需求分析、用例设计到缺陷跟踪&#xff0c;每一个环节都容不得半…...

中文编程语言的开创性语法,言律:一门以汉语为思维内核的原生中文编程语言

在对母语作为思维原生载体的深层结构、语言相对论与神经认知机制的探讨基础上&#xff0c;我们不再满足于“把英文关键字翻译成中文”的表层汉化&#xff0c;而是要开创一种真正根植于汉语思维逻辑的编程语法体系—— &#x1f33f;「言律」&#xff08;Yn Lǜ&#xff09;&…...

Unity角色移动手感优化:从WASD输入到物理移动的完整链路

1. 这不是“写个Input.GetAxis”就能跑通的移动逻辑在Unity项目里&#xff0c;只要角色需要被玩家操控&#xff0c;WASDQEShift这套组合键几乎就是默认配置——它不依赖鼠标、不强制视角绑定、兼容手柄映射&#xff0c;是PC端第三人称/第一人称角色最基础也最易被低估的交互层。…...

基于i.MX8M Plus与5G的高性能AI边缘计算网关设计与实践

1. 项目概述&#xff1a;为什么我们需要一个“会思考”的边缘网关&#xff1f;在工业现场待久了&#xff0c;你一定会对几个场景深有感触&#xff1a;产线上几十台PLC和传感器&#xff0c;协议五花八门&#xff0c;Modbus、Profibus、CANopen&#xff0c;想统一采集数据得接一堆…...

【ElevenLabs潮州话语音实战指南】:20年语音AI专家亲授3大落地陷阱与5步合规部署法

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;ElevenLabs潮州话语音技术全景概览 ElevenLabs 作为全球领先的语音合成平台&#xff0c;长期聚焦于高保真、多语言、情感化TTS技术研发。尽管其官方公开支持的语言列表尚未正式纳入潮州话&#xff08;Teochew&…...

【限时解密】ElevenLabs未开放的客家话语音fine-tuning沙箱环境:如何用不到200条标注语句,在72小时内将模型MOS分从3.1提升至4.4(附私有化微调checklist)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;【限时解密】ElevenLabs未开放的客家话语音fine-tuning沙箱环境&#xff1a;如何用不到200条标注语句&#xff0c;在72小时内将模型MOS分从3.1提升至4.4&#xff08;附私有化微调checklist&#xff09; Eleve…...

PS 图片模糊修复教程:4 种方法,一键变高清

在日常设计、摄影后期、电商运营等场景中&#xff0c;模糊图片往往会严重影响观感与使用效果——无论是拍摄时的对焦失误、低分辨率素材的压缩失真&#xff0c;还是老照片的模糊褪色&#xff0c;都需要快速恢复清晰度。本文整理4种超实用的图片清晰化方法&#xff0c;涵盖PS原生…...