MySQL 理论

有关MySQL的理论、历史、性能、功能等方面的前沿研究 1.1 为何要写这个文章?近几年,随着互联网的飞速发展,数据量的增加也越来越快。单个数据库的处理能力不能满足需求,所以需要使用分布式的数据库。MySQL 是最流行的开源关系型数据库之一。但是,对于 MySQL 的底层原理及其优化技巧并不了解,阅读官方文档或相关书籍又较为耗时费力。另外,数据库系统是一个庞大的体系,掌握它的内部机制才能更好地进行定制化开发,提升性能和效率。 阅读详情

重点:

   数据库中操作一定要小心,更新数据必须带条件

(1)Web乱码问题
    动态网站由三部分构成:浏览器,Apache服务器(PHP),数据库服务器
    解决方案:三码合一

(2)整数型
    Tinyint:一个字节 ,127/255;
    Smallint:2个字节,32767/65536;
    Mediumint:3个字节,8388607/16777215;
    Int :2147483647/4294967295
    Bigint:8个字节
     zerofill 0填充

(3)int(4) 如果不够,4位,前面用0填充,保证数据格式

(4)校对集问题
      校对集:数据的比较方式
      校对集有三种格式
      _bin:binary,二进制比较,取出二进制位,一位一位的比较,区分大小写
      _cs:case sensitive,大小写敏感,区分大小写
      _ci;case insensitice,不区分大小写
(5) show collation;
    只有比较的时候才会生效
    必须在没有数据前声明好,有数据后修改无效

(6)网站是以PHP未实现的主要操作对象:PHP中有非常强大的时间日期处理函数:date,只需要一个时间戳就可以转换成任意类型的时间;以PHP为主的时候,都是在数据库使用时间戳(整型)来存储时间;

一个字符可能占用多个字节,这由编码和存放的字符决定。比如UTF8(一种变长的unicode编码)中,一般一个汉字占据3个字节,一个英文字母占据一个字节

(7)字符串类型
    1.定长字符串: char; 磁盘在定义结构的时候,就已经确定了最终数据的存储长度
        char(L):L代表可以存储的长度,单位为字符
    2.变长字符串: varchar; 在分配空间的时候,按照最大的空间分配,但是实际上最终用了多少,是根据具体的数据来确定
      varchar(L): L 表示字符长度 一般会多存1到2个字节来确定存储的实际长度
    3.如果数据量非常大,超过255 个字符就会使用文本字符串
        Text:存储文字
        Blob:存储二进制数据(一般不用)
(8)枚举字符串
      枚举:enum,事先将所有可能出现的结果,都设计好,实际上存储的数据必须是规定好的数据
     (1.规范数据格式,2.节省存储空间)
(9)集合字符串
    集合跟枚举很类似:实际存储的是数值,而不是字符串

(10)MySQL记录中:如果有任何一个字段允许为空,那么系统会自动从整个记录中保留一个字节来存储NULL(若想释放NULL所占用的字节,必须保证所有的字段都不允许为空)

(11)MySQL中text文本字符串,不占用记录长度:额外存储。但是text文本字符串也是属于记录的一部分:一定需要占据记录中的部分长度:10 个字节;(保存数据的地址及长度)

(12)列属性:
     真正约束字段的是数据类型,但是数据类型的约束很单一,需要有一些额外的约束,来更加保证数据的合法性。
     NULL(默认的,应该尽可能保证数据不为空)
     NOT NULL
     unique key
     auto_increment

(13)默认值:Default

一对多:一张表最后那个有一条记录可以对应另外一张表中的多条记录,另外一张表的一条记录只能对应第一张表的一条记录

(14)关系
    将实体与实体的关系反映到数据表的设计上
    一对一:一张表的一条记录一定只能与另一张表的一条记录进行对应
    一对多:一张表中有一条记录可以对应另一张表的多条记录
    多对多:一张A表中的一条记录能够对应B表中的多条记录,同时B表中的一条记录也对应A表中的多条记录(新增一张表,维护两个表的关系)

范式:normal format 是为了解决数据的存储与优化的问题,为了减少数据的冗长。若要满足下一层,必须满足上一层,并不是强制规范
    1NF(第一范式):要求字段的数据具有原子性:不可再分

    2NF(第二范式):数据表的设计过程中,有复合主键(多字段主键),且表中有字段并不是由整个主键来确定,而是依赖主键中的某个字段:存在字段依赖主键的部分的问题。
    3NF(第三范式):解决传递依赖的问题

(15)rand() 取一个0-1之间的一个随机数

【Apollo规划模块探秘】—— 场景(Scenario)驱动的决策引擎 本文深入解析了Apollo自动驾驶平台规划模块的核心机制——场景(Scenario)驱动的决策引擎。文章通过类比日常驾驶,阐述了规划模块如何像经验丰富的司机一样,根据不同的路况(如车道跟随、无保护左转)切换不同的“驾驶模式”。重点剖析了场景管理器(ScenarioManager)如何基于感知信息进行场景判断与切换,以及“场景-阶段-任务”双层状态机如何精密协作,实现灵活、高效且安全的轨迹规划。 阅读详情

相关推荐

保姆级教程:用QSTEM和DrProbe搞定你的第一张STEM模拟图(附Fe3O4实例文件)

本文提供了一份详细的STEM模拟图像生成教程,涵盖从晶体结构获取到最终图像模拟的全过程。通过QSTEM和DrProbe软件的操作指南,帮助材料科学研究者快速掌握STEM模拟技术,特别适合初学者。教程包含Fe3O4实例文件,详细解析参数设置、计算优化和结果分析等关键步骤。

weixin_33730836的博客 523

mysql 理论知识

一、为什么使用索引索引是存储引擎用于快速找到数据记录的一种,就好比一本教科书的目录部分(也不太一样),通过目录中找到对应文章的页码,便可快速定位到需要的文章。 Mysql中也是一样的道理,进行数据查找时,首先查看条件是否命中某条索引,符合则相关数据,如果不符合则需要,即需要一条一条地查找记录,直到找到与条件符合的记录。 如上图所示,数据库没有索引的情况下,数据,读取数据时,摆臂需要前后摆动查找数据,这样操作非常消耗时间。如果,那么也需要从1到6行按顺序读取,这样就相当于进行了6次IO操作,。如果我们不借助

weixin_45080272的博客 882

电子系统设计与创新实践作品:简易电子琴

题目 4:简易电子琴 (1)具有8个音阶按键,每个音阶按键频率如表1所示。 (2)每个按键对应LED显示。 (3)音阶信号经功放连接8欧姆扬声器,输出功率可达1W。 (4)每个音阶输出音量一样。 (5)扬声器输出音量可调节,音量调节分为高、中、低三档,并进行档位显示。

weixin_47510497的博客 2858

MySql数据库【理论篇】

InnoDB是事务型存储引擎,提供了对数据库ACID事务的支持,并实现了SQL标准的四种隔离级别,具有行级锁定(这一点说明锁的粒度小,在写数据时,不需要锁住整个表,因此适用于高并发情形)及外键支持(所有数据库引擎中独一份,仅有它支持外键)该引擎的设计目标便是处理大容量数据的数据库系统,MySQL在运行时InnoDB会在内存中建立缓冲池,用于缓存数据及索引。例如,一个事务对数据进行了修改但最终未提交,在此期间另一个事务读取了这个尚未提交的数据,那么读取到的数据将是未经验证的、不一致的脏数据。

2301_76988707的博客 331

STM32H750实战:如何用CubeMX配置NAND Flash时序(附常见问题排查)

本文详细解析了STM32H750通过CubeMX配置NAND Flash时序的实战技巧,包括硬件连接、时序参数计算与优化策略,以及常见问题如RGB屏幕干扰、多片选冲突的解决方案。特别针对NAND Flash的时序配置和抗干扰设计提供了实用代码示例和优化建议,帮助开发者提升系统稳定性和性能。

weixin_29176179的博客 363

STM32F407+LAN8720网口不通?别慌,手把手教你用CubeMX和HAL库搞定RMII配置与调试

本文详细介绍了STM32F407与LAN8720网口不通的全面排查与解决方法,涵盖硬件检查、CubeMX配置、PHY芯片初始化和LWIP协议栈优化。通过RMII接口配置、时钟树设置和PHY芯片调试,帮助开发者快速定位并解决网络连接问题,提升嵌入式网络开发效率。

weixin_30457551的博客 506

MySQL数据库基础理论

数据库管理系统是一个由相互关联的数据集合和一组用访问这些数据的程序组成,这个数据集合被称之为数据库其中包含了用户访问的所有信息,都需要存储在里面

Hanxuhanhan的博客 450

CATIA二次开发一一一计算 CATIA 零件模型在全局坐标系下的包围盒方法

本文介绍了一种在CATIA中计算零件模型全局坐标系下包围盒(BoundingBox)的方法。通过遍历零件几何体特征点,并应用坐标变换矩阵,最终返回精确的零件包围盒。核心步骤包括初始化与输入校验、坐标变换处理、几何体特征点遍历以及全局坐标变换。关键方法涉及CATMathBox操作和坐标变换接口。该方法适用于碰撞检测、可视化优化和装配分析等场景,能够快速判断零件间的空间干涉,提升渲染性能,并计算零件在装配体中的全局位置范围。

工业软件开发 894

mysql基础理论知识

MySQL基础理论知识

weixin_45694230的博客 473

AES加密算法及AES-CMAC原理白话版系统解析

对AES不同加密算法,加密模式,加密原理,填充算法及AES-CMAC算法的详细系统介绍,帮助大家对AES进行系统掌握。

initiallizer的博客 4068

OpenClaw一人公司落地案例:本地商家营销智能体月赚3万的秘密

角色:本地商家营销专家## 核心目标为商家生成高转化率的抖音营销策略,最大化 ROI。## 输入数据- 商家名称: "XX奶茶店"- 过去 30 天视频播放量: 12,000- 客单价: 28 元- 竞品平均播放量: 15,000- 市场趋势: rising## 策略生成规则1. **内容类型**:根据客单价推荐- < 30 元:美食探店 + 优惠券- > 30 元:场景化故事 + 会员权益2. **发布时间**:根据历史数据- 18:00-20:00 高峰期。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 542

Mysql的理论知识

数据库就是用来数据的仓库!数据库存储数据的优点:可存储大量数据;方便检索;保持数据的一致性、完整性;安全,可共享;通过组合分析,可产生新数据。

m0_74096456的博客 884

PyRoki 入门教程(二)安装与使用

PyRoki是一个用于机器人运动学优化的Python库,具有模块化设计、可扩展性和跨平台支持等特点。它支持逆运动学、轨迹优化和动作重定位等任务,采用Levenberg-Marquardt优化器提高效率。主要功能包括:基于URDF的可微分正向运动学模型、自动生成碰撞基元、通用成本因子和自定义成本函数等。PyRoki支持CPU、GPU和TPU运行,适用于从单机器人到大规模并行处理场景。目前存在一些限制,如仅支持软约束、静态形状和特定关节类型等。官方提供了多个应用示例,包括基础逆运动学、碰撞检测、轨迹优化和手部/

机器人控制与仿真应用 1251

mysql【基础理论】

MYSQL基础理论知识 什么是数据库: 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 数据库的类型: 关系型数据库:mysql----mariaDB,oracle 非关系型数据库:nosql RDBMS 术语 数据库:是一些关联表的集合 数据表:表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。 列:一列包含了相同类型的的数据,例如身份证上的名字 ...

DarKer_LB的博客 1244

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

MySQL 七种join 理论

MySQL 七种join 理论

系统看你学习很认真,随机送了一个月会员! 419

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

MySQL:关系模型的基本理论

对于我们来说为什么要学习和了解关系模型的基本理论呢,我在一开始学习这点的时候就不是很清楚,不知道其重要性,但是学习关系模型对于数据库开发和设计是至关重要的,它提供了一个系统化和结构化的方式来组织,管理和访问数据,关系模型是基于集合论和逻辑推理的,通过关系(通常表现为表)来表达数据及其之间的关系。我们要明白数据之间的关系,相信很多毕业答辩的同学经常会被问到主键和外键和参照完整性原则,下面我们就来看看这到底是个怎么事!每个字段的值必须来自于一个有效的域(数据类型和值的范围)。

2301_81776550的博客 1179

MySQL之事务理论和案例

原子性(Atomicity)事务中的操作要么全部成功,要么全部失败。实现机制:通过记录操作前的数据状态,用于回滚。一致性(Consistency)事务执行前后数据库状态必须符合业务规则。依赖应用层逻辑和数据库约束(如唯一索引、外键)共同维护。隔离性(Isolation)并发事务之间互不干扰。实现机制:锁机制和MVCC(多版本并发控制)。持久性(Durability)事务提交后数据永久保存。实现机制:记录数据修改,崩溃恢复时重放日志。隔离级别读未提交(Read Uncommitted):可能读到未提交的数据,

lx2632730145的博客 1354

Mysql数据库相关理论知识

SQL代表结构化查询语言(SQL是用于访问数据库的标准化语言。DDL(Data Define Language)数据定义语言包含定义数据库及其对象的语句,例如表,视图,触发器,存储过程等。DML(Data Manipulation Language) 数据操作语言包含允许更新数据的语句。DCL (Data Control Language)数据控制语言允许授予用户权限访问数据库中特定数据的权限。DQL(Data Query Language) 数据库查询语言。

weixin_57328245的博客 1430

[MySQL]事务的理论、属性与常见操作

事务的本质就是一组DML语句构成的。这些语句在业务逻辑上存在一定的相关性。例如上述的转账操作,有修改A的数据库表,修改B的数据库表等操作,这些操作存在一定的相关性共同构成了一个业务逻辑,这些SQL语句组合起来称为一个事务。所以对于事务,不应该站在MySQL角度,应该站在使用者的角度去看待,使用者想要完成一个业务操作,对应需要使用的一条或者多条SQL语句就是构成了一个事务。对于事务的执行操作,如果执行要么就是全部成功,要么就全部失败,事务中的多条DML语句是一个整体。

m0_74207969的博客 1588

MySQL范式完全解析:从理论到存储原理的深度实践

范式理论是数据库设计的基石,它通过数学方法解决数据存储中的四大核心问题: 数据冗余:相同数据在多个位置重复存储(如用户地址在订单表中重复出现) 更新异常:修改冗余数据时可能遗漏部分副本 插入异常:无法单独插入某种信息(如没有订单就无法录入新商品) 删除异常:删除数据时意外丢失关联信息

weixin_51786043的博客 1238

MySQL基础教程:全面理论与实践指南(三)

MySQL是世界上最流行的开源关系型数据库管理系统之一,广泛应用于网站、应用程序和企业级系统。它采用客户端/服务器架构,支持多用户环境,并基于SQL(结构化查询语言)标准。这篇文章全面介绍了MySQL数据库的核心理论和高级特性,从基础概念到复杂的实践应用,涵盖了数据库管理员和开发人员需要掌握的关键知识。我们讨论了MySQL的架构、存储引擎和数据类型,深入探讨了分布式数据库理论、CAP定理、索引原理等理论基础。

Lethehong 1356

深入MySQL优化-架构简介及JOIN理论

概述 MySQL架构 连接层:最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似tcp/ip的通信。主要完成一些连接处理,授权认证及相关的安全方案。在该层引入了线程池的概念,为通过认证安全接入的客户端提供线程,同样在该层上可以实现基于SSL的安全链接,服务器也会为安全接入的每个客户端验证它具有的操作权限。 服务层:第二层架构主要完成核心服务功能,如SQL...

追梦的小狼狗 259

如何使用CS理论学好MySQL?

看透表象:从 SQL 语句背后看到 B+ 树、锁、日志等底层机制,理解“为什么索引能加速查询”“事务为何能保证一致性”。量化分析:用算法复杂度(O(log n)、O(n))评估查询效率,用并发控制理论分析锁冲突原因。工程落地:将理论转化为优化实践(如设计合理索引、缩短事务),并通过EXPLAIN、慢查询日志验证效果。最终目标是从“会写 SQL”升级为“能设计高性能、高可用的 MySQL 架构”,这需要对数据结构、算法、并发控制等 CS 理论的深刻理解,而非仅停留在语法层面。

长风破浪会有时的博客 846

MySQL基础教程:全面理论与实践指南(全)

MySQL是世界上最流行的开源关系型数据库管理系统之一,广泛应用于网站、应用程序和企业级系统。它采用客户端/服务器架构,支持多用户环境,并基于SQL(结构化查询语言)标准。基础操作:数据库和表的创建、修改和删除CRUD操作:数据的增删改查高级查询:连接、子查询、窗口函数和CTE数据库管理:事务控制、索引优化、备份恢复高级特性:存储过程、触发器、视图、分区表性能与安全:性能调优、用户管理、安全最佳实践熟练掌握这些知识点,可以帮助你构建高效、安全、可靠的MySQL数据库应用。

Lethehong 2279

深入剖析MySQL表关系:从理论到底层实现

通过深入理解这些表关系设计和底层实现原理,开发者可以构建出既高效又易于维护的数据库架构。建议结合具体的业务场景,灵活运用不同的关系模型,同时持续关注MySQL的最新发展动态。

weixin_51786043的博客 772

MySQL七种Join理论

create table `result` ( `studentno` int(4) not null comment '学号', `subjectno` int(4) not null comment '课程编号', `score` int(4) not null comment '考试成绩' ) engine=innodb default charset=utf8; create table `student` ( `studentno` int(4) not null comm.

weixin_43808717的博客 639
上一篇: MySQL基本语法
下一篇: 快速求解 分解因子和 PE problem21
error0318
博客等级 码龄9年 57粉丝 515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值