数据库索引个人笔记

《数据库原理》实验报告DB4——视图与索引 一. 实验内容、步骤以及结果 1. 在Student数据库中,用SQL语句创建一个选修了数据库课程并且是2001年出生的学生的视图,视图中包括学号,姓名,性别,成绩。(5分) create view student_2001(sno,sname,sgender,grade) as select s.sno,sname,sgender,grade from s,sc,c where s.sno = sc.sno and sc.cno = c.cno and cname = '数据库' and birth li 阅读详情

索引

Mysql的索引比如一本书的目录,它能让你更快找到你想要的内容。索引并不是越多越好,建立索引需要耗费磁盘空间,同时在对索引的维护上会消耗数据库的性能,对于查找频率高并且数据库数据量大的数据建立索引能够提高查找的性能。
索引的结构
索引主要有两种结构,分别是B+TREE索引和HASH索引。

B+TREE

B+TREE是MySql使用最多的一种索引结构。
是Innodb和Myisam存储引擎模式的索引类型。
由于所有索引数据都存储在叶子结点上,并且增加了顺序访问指针,每个叶子结点都有指向相邻兄弟(叶子)节点的指针,又因为叶子上的数据是顺序存储的,因此在区间查询上有更高的效率。比如查找18~49的数据,只需找到19,然后顺着结点和指针顺序遍历可以访问到所有需要的数据的叶子结点。
并且B+树本身就是为了减少磁盘的I/O读取而在二叉查找树上的基础上改进的一种树,可以大大减少磁盘I/O的读取次数。
B+树

HASH

Memory表的默认索引类型,Mysql中只有Memory存储引擎(Memory表只存储于内存中,断电会消失,用于临时表)支持hash索引。
对于查询单条记录的场景,hash索引比B+RREE索引且有更高的效率。
hash

B+TREE和HASH索引结构的对比

对于查询单条记录,HASH索引具有更高的性能。
对于需要区间查询以及数据排序的场景下,B+TREE更能满足要求。

索引类型

1、 普通索引 INDEX
2、 唯一索引 UNIQUE INDEX
3、 主键索引 PRIMARY KEY
4、 组合索引 INDEX(column1,column2,…)
5、 全文索引 FULLTEXT

普通索引

最普通的索引,没有任何限制。

唯一索引

索引值必须唯一,但允许空值。

主键索引

一种特殊的索引,一个表只能有一个主键,索引值唯一,不允许有空值。

组合索引

指多个字段上创建的索引,列个组合必须唯一,使用组合索引时遵循最左前缀集合,只在查询条件中使用了创建索引时的第一个字段(也有人叫它做引导列,比有(col1,col2,col3,…),其中col1就是引导列)时,索引才会被引用。
举个例子:create index index_name on table_name(col1,col2,col3,…)
下面的查询语句会使用索引:
1. where col1=
2. where col1 = ? And col2 = ?
3. where col2 = ? and col1 = ?
下面查询语句不会使用索引:
1. where col2 = ?
2. where col3 = ?
3. where col2 =? And col3 =?

全文索引

只能用在Innodb和Myisam的存储引擎上。在Innodb只能用在char/varchar/text的字段上。
这个内容有点大,单独开一篇来写。

微信小程序 - error_msg:net::ERR_CONNECTION_RESET“(“errno“:600001,“errMsg“:“uploadFile:fail errcode:-101) "errno":600001,"errMsg":"uploadFile:fail errcode:-101 cronet_error_code:-101 error_msg:net::ERR_CONNECTION_RESET"微信小程序,微信小程序wx.uploadFile报错,uniapp微信小程序uni.uploadFile上传文件报错,微信小程序调用wx.uploadFile返回错误ERR_CONNECTION_RESET,如何解决这个问题,上传图片出现报错,小程序上传视频报错,上传文件出现报错,如何 阅读详情

相关推荐

RealSense D455的标定并运行VINS-FUSION

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_40186909的博客 2万+

sql 一次添加多条记录

--添加一条记录   INSERT INTO tableName(col1,col2,col3) VALUES (1,2,3)     --添加多条记录   INSERT INTO tableName(col1,col2,col3)   SELECT 3,4,5   UNION ALL  SELECT 6,7,8     --从另外的一张表中读取多条数据添加到新表中   INSERT INTO t

sixchars的博客 1万+

【原创工具 | OpenCV-CamCalib】一个基于 OpenCV 的自动化相机数据采集和标定程序

一个基于OpenCV的自动化相机数据采集和标定程序。系统内置相机地址默认为 0。

XavierJ的博客 2698

数据库学习笔记一:索引篇

从数据页的角度看 B+ 树 | 小林coding从数据页的角度看 B+ 树 | 小林coding学习资料来源,侵权删除: 从数据页的角度看 B+ 树 | 小林coding 一、索引篇 InnoDB 是如何存储数据的? 记录是按照行来存储的,但是数据库的读取并不以「行」为单位,否则一次读取(一次 I/O 操作)只能处理一行数据,效率会非常低。 因此,InnoDB 的数据是按「数据页」为单位来读写的,也就是说,当需要读一条记录的时候,并不是将这个记录本身从磁盘读出来,而是以页为单位整体读入

上山的人 2476

ENVI遥感技术

记录2024.03.06所遇到的遥感问题

qq_44453923的博客 4332

数据库笔记-索引

索引是帮助 MySQL 高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查询算法,这种数据结构就是索引。优点:缺点:二叉树 (极端情况下,可能出现单向链表的形式出现,这样会导致查询的时间复杂度 降低到 O(n))一个层级 只能够包含两个结点(容纳太少)导致树高过高(IO 成本大幅度提高) 需要解决问题: (红黑树的本质:任然是二叉树) (多路平衡二叉树) B- Tree

lyb2021的博客 352

harbor x509: certificate signed by unknown authority【20251222】

本教程通过「合并证书链(服务器端)+ 预置根 CA(客户端)」彻底解决了自签名证书的 x509 错误,同时集成了 Trivy 漏洞扫描,实现了 Harbor 从搭建到实用的全流程。证书链合并是服务器端的关键,确保客户端获取完整信任路径;客户端需同时配置「系统信任库 + Docker 信任目录」,避免 Docker 独立信任机制导致的问题;所有 IP 需保持一致(Harbor 配置、证书绑定、客户端访问),是避免错误的基础。

老韩的Linux云计算架构师进阶之路 682

数据库迁移报错解决

更改模型类时: 在遇到需要更改模型类的时候 删除数据库中的表和migrations中的迁移文件 重新进行迁移 先执行 python manage.py makemigrations 执行完的信息 -Create model User 再执行python manage.py migrate 就会报错 No migrations to apply 我们在进行迁移文件时 一共会生成三方文件,迁移文件、数据库中的表以及迁移信息的记录 这里是我之前写的一个项目拿来给大家举例 我们打开数据库 迁移打开djang

pink_Pig___的博客 880

YOLOv13多分支融合机制+SE注意机制 RepVGGBlock_OREPA架构 map提升4.89,召回率提升8.66

本文提出了一种改进的YOLOv13目标检测模型,通过引入RepVGGOREPA模块和重参数化技术,显著提升了模型性能。实验结果表明,采用RepVGGBlock后,mAP提升4.89,召回率提升8.66%。文章详细介绍了模型移植过程,包括创建YOLOv13-REPVGGOREPA配置文件、修改任务处理代码和模块初始化文件,并提供了完整的OREPA模块实现代码。该模块通过多尺度特征融合和SE注意力机制,实现了训练时的丰富表征能力和推理时的高效计算,为YOLO系列模型提供了新的优化思路。

FJN110的博客 2650

AI驱动芯片设计的端到端验证:AI应用架构师的全流程指南

想象你要建造一座1000层的超级摩天大楼,每个房间都有独特的功能,管道、电路、电梯系统交织如迷宫。传统的检查方式是派1000个工程师逐层逐房手动检查,耗时十年且仍可能遗漏火灾隐患。这就是今天芯片设计面临的困境:7nm芯片含百亿晶体管,相当于百亿个"房间",传统验证方法(人工编写测试用例、随机仿真)已难以应对。本文的目的,是为AI应用架构师提供一份"AI驱动芯片验证导航图",范围涵盖从验证需求分析到芯片签核的全流程,包括AI模型如何融入传统验证工具链、数据如何驱动验证效率提升、以及端到端闭环系统的构建方法。

2501_92132293的博客 1241

数据库系统笔记 | 索引

声明:本文配图和样本数据均来自《数据库系统概念》官网,再次对原作者表示感谢。 概述 数据库的记录按照一定的组织顺序保存在文件中,插入、删除和更新操作都一般都需要先做查询,在文件中找到"合适的位置",再做插入、删除和更新。因此,对数据库文件最频繁的操作便是查询,当数据库的记录很多的时候,从文件中查询想要的记录便会很慢,瓶颈就在于磁盘I/O的速度太慢。 磁盘中的文件是由大量的块组成的,文件系统的...

Hunk的菜鸟之路 5646

tongweb中间件selectApp.jsp存在任意文件上传(含批量验证poc)

tongweb中间件selectApp.jsp存在任意文件上传(含批量验证poc)

weixin_43567873的博客 1986

数据库索引(个人笔记)

数据库索引(个人笔记)

星空的日常博客,希望日常能给你帮助 339

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

个人笔记---数据库事务、视图、索引

目录 一、事务 1.概念 2.四个特性 3.隔离级别 4.查询mysql的隔离级别 5.事务处理 6.提交 7.回滚 二、表关联association 1.概念 2.多表联查 join 笛卡尔积 Cartesian product 三种连接join 子查询 subquery 三、SQL的执行顺序 四、索引 1.定义 2.分类 3.创建索引 1)查看索引 2)创建普通索引 3)创建唯一索引 4)创建复合 5)删除索引 4.索引扫描类型...

z1692635964的博客 992

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SQL Server 重建索引|索引重组|索引的碎片检查 (MSSQL个人笔记之数据库优化之路 六<SQL2005以上>)

SQL Server 重建索引|索引重组|索引的碎片检查  (SQL2005以上) /******************************************************************************** *主题:SQL Server 重建索引|索引重组|索引的碎片检查  (SQL2005以上) *说明:本文是个人学习

6242

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

索引---最直接的切入点(MSSQL个人笔记之数据库优化之路 一)

索引和书的中的索引差不多意思,也就是书的目录。 1.聚集索引 :在聚集索引中,表中各行的物理顺序与键值的逻辑顺序相同。一个表中只可以有一个聚集索引。  如果表中有聚集索引,则该表为聚集表,如果没有则为堆的无序结构表。 2.非聚集索引:具有独立数据行的结构。包含非聚集索引键值,并且每个索引键值都有指向包含键值的数据行的指针。 创建索引 drop table tb create table

6009

Mysql个人笔记

关系模型是目前数据库系统普遍采用的数据模型,也是应用最广泛的数据模型。关系模型通过二维表表示实体以及实体之间的联系。二维表并不一定是关系模型,只有具备下列特 点的二维表才是关系模型:(1)表格中的每一列都是不可再分的基本数据项;(2)列和列之间的名字不同,每一列的数据类型相同或者兼容(3)行和行的顺序无关,列和列的顺序也无关(4)关系中不能存在完全相同的两行二维表来表示实体间的联系第一范式是指在关系模型中,数据库表的每一列都是不可分割的原子数据项。简而言之,第一范式就是无重复的原子域。

houliabc的博客 1140

个人笔记整理——数据库相关

1、数据库索引 对数据库表中一个或多个列的值进行排序的结构,是对表字段附加的一种标识,每一个索引都有一个相对应的索引码,索引就相当于所有数据目录项的一个集合,好比一本书的目录,能够加快数据库的查询速度。 其底层实现为B+树,加快了查找、排序的速度,但有空间代价和增删改的代价。 其分类有:简单索引、唯一索引、主键索引、复合索引以及全文索引。 //创建索引 CREATE INDEX inde...

fuliag1014的博客 331

MySQL索引的创建、删除和查看

索引的创建,查看和删除

yujinlong2002的博客 361

Mysql数据库内的索引操作【重点】

一文详解Mysql数据库内的索引操作

大学生活与学习一站式解决方案. 381

构建个人数据库知识库:从原理到实战的十万字笔记方法论

数据库作为现代应用的核心组件,其性能优化与稳定运行是后端开发和系统架构中的关键挑战。理解其底层原理,如B+Tree索引结构、事务的ACID特性与MVCC实现机制,是进行高效问题排查和系统设计的基础。这些知识能帮助开发者从本质上分析慢查询成因、设计合理的表结构,并应对高并发场景,从而提升系统的可扩展性与可靠性。在工程实践中,将这些原理与**执行计划深度解读**、**索引设计优化**等具体技术结合,形成结构化的个人知识体系,能有效对抗知识碎片化。本文即以一份持续演进的“数据库实战笔记”为例,分享了如何通过问题驱

weixin_30267785的博客 493

如何用Obsidian Dataview在5分钟内构建你的个人知识数据库

想象一下,你正在整理数百篇读书笔记、观影记录和项目文档,却总是找不到想要的信息。传统的文件夹分类已经无法满足你的需求,而复杂的数据库软件又过于笨重。现在,有了Obsidian Dataview,你可以在熟悉的Markdown笔记中建立强大的个人知识数据库,让每一篇笔记都成为可查询的数据点。😊 ## 📊 为什么你的笔记需要Dataview数据可视化 **Obsidian Dataview**

gitblog_00216的博客 667

database.db 文件详解:数据库文件在 SQLite 中的作用与使用

本文解析了Python项目中自动生成的database.db文件的作用和使用方法。该文件是SQLite数据库的默认存储文件,包含表结构、数据记录和索引等信息。文章详细介绍了SQLite的存储原理、查看和操作方法(命令行与可视化工具)、备份策略及常见问题解决方案,并强调数据库管理需严谨,避免数据丢失。掌握.db文件的特性能帮助开发者更高效地进行项目调试和数据库维护。

聚焦学生开发者需求,分享课设毕设项目实战经验、系统开发技巧、数据库设计规范及文档排版实用方法。 2402

AI Meets Database: AI4DB and DB4AI

数据库和人工智能可以相互受益。一方面,人工智能可以使数据库更加智能(AI4DB)。例如,传统的经验数据库优化技术(例如,成本估算、连接顺序选择、旋钮调整、索引和视图顾问)无法满足大规模数据库实例、各种应用程序和多样化用户的高性能要求,尤其是在云上。幸运的是,基于学习的技术可以缓解这个问题。另一方面,数据库技术可以优化人工智能模型(DB4AI)。例如,人工智能很难部署,因为它需要开发人员编写复杂的代码和训练复杂的模型。数据库技术可用于降低使用人工智能模型的复杂性,加速人工智能算法,并在数据库内提供人工智能能力

Syntactic Sugar 3561

详解数据仓库和数据库的区别

一、数据仓库 什么是数据仓库? 数据仓库(Data Warehouse),可简写为DW或DWH,数据仓库,是为了企业所有级别的决策制定计划过程,提供所有类型数据类型的战略集合。它出于分析性报告和决策支持的目的而创建。为需要业务智能的企业 ,为需要指导业务流程改进、监视时间,成本,质量以及控制等; 数据仓库能干什么?(举几个栗子) 年度销售目标的制定,需要根据以往的历史报表进行决策,不能随便...

liwenjie001的博客 8万+
上一篇: 数据库事务个人笔记
下一篇: 堆排序(headSort)
VLoye
博客等级 码龄10年 9粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值