MySQL——性能优化与关系型数据库
文章目录
- 什么是性能?
- 什么是关系型数据库?
- 数据库设计范式
- 常见的数据库
- SQL语言
- 结构化查询语言的六个部分
- 版本
- MySQL数据库
- 故事
- 历史版本
- 5.6/5.7差异
- 5.7/8.0差异
什么是性能?
- 吞吐与延迟:有些结论是反直觉的,指导我们关注什么。
- 没有量化就没有改进:监控与度量指标,指导我们怎么去入手。
- 80/20原则:先优化性能瓶颈问题,指导我们如何去优化。
- 过早的优化是万恶之源:指导我们要选择优化的时机。
- 脱离场景谈性能都是耍流氓:指导我们对性能要求要符合实际,在服务器上运行和在笔记本上运行是不一样的。
在对大多数情况下,我们面对的是一个老的遗留的业务系统。如果对这个老系统进行优化,一般会涉及它的容量,稳定性以及可用性。一般情况,优先考虑的点就是优化数据库相关的性能。也就是下面我们将谈论的内容。
什么是关系型数据库?
?
数据库设计范式
- 第一范式:保证属性(列)的原子性,属性不可再分;
比如以学生档案相关属性举例,对应的表包含【学号】。【姓名】、【院系】、【分数】四个属性,其中【院系】不满足原子性,它可再拆分为【院】(计算机学院)、和【系】(自动化、计算机技术、软件工程)这两个属性。
- 第二范式:表中不存在与主键部分相关的属性(列);
以学生成绩相关属性举例,对应的表包含【学号】。【姓名】、【课名】、【系名】、【系主任】、【分数】。
其中主键为学号+课名,对应关系图如下:
’
(主键为什么不是学号?注意,这里的主键含义是能唯一确定此条记录的属性集合,如果只以学号为主键,结合表中的数据,不能唯一确定分数这一世为什么表不满足第二范式的原因).’
从上面的关系图中可以看出,姓名,系名以及系主任可以单独被学号确定,即存在属性能被主键部分确定,因此此表不满足第二范式,需要对表进行拆分。
’
此时,拆成两个表,满足第二范式。
3. 第三范式:属性不存在传递依赖。
意思就是消除表中列不依赖主键,而依赖表中非主键的情况,即没有列属于主键不相关的。上图中以满足第二范式,但【系主任】不依赖于【学号】,因此不满足第三范式。
·
·
此外还有第四范式和第三范式,但用的不多。但是,通常情况下,我们会在主表中加入一些冗余,不必满足这几种范式,不如在主表中加入从表的一些属性,当我们在查询中,只需要的查询主表就足够了,减少表的联合查询,因此在设计数据库的时候,加入一些冗余属性数非常必要的;
常见的数据库

SQL语言
SQL首先实在操作关系型数据库时提出的,但越来越多的实践证明,无论关系型数据库还是其他类型数据库SQL,但凡涉及操作数据领域时,SQL就是最强大,最灵活的实施标准了。
结构化查询语言的六个部分
1. DQL:数据查询语言,用于检索的语言,select 搭配 where、order by、group等等。
2. DML:数据操作语言,用于添加、删除、修改的语言,像insert、update。delete。
3. DDL:数据定义语言,用于的创建、删除、修改表结构的语言,像create、drop、alter。
4. TCL:事务控制语言,像commit,rollback等。
5. DCL:数据控制语言,控制用户权限相关语言。
6. CCL:指针控制语言。
版本

常用的版本为SQL-92和SQL-99,常见的SQL解析器一般表明支持这两种。
MySQL数据库
故事
MySQL有 MySQL AB公司于1995年创立,2008年被Sun公司收购,2009年Sun被Oracle收购。由于担心Oracle对MySQL收费,因此,MySQL AB创始人有开辟一个分支继续对MySQL进行维护,名为MariaDB,因此目前存在两个版本MariaDB和Oracle公司维护的MySQL;
历史版本
- 4.0版本——支持InnoDB,事务;
- 5.0版本——2003年;
- 5.6版本——历史使用最多的版本;
- 5.7版本——使用最多的版本;
- 8.0版本——最新,功能最完善,改动最多,因此此版本没有被命名为5.8,而是直接命名为8.0版本;
5.6/5.7差异
5.7支持:
- 多主
- MGR高可用
- 分区表
- json
- 性能
- 修复XA等
5.7/8.0差异
- 8.0支持:
- 通用表达式
- 窗口函数
- 持久化函数
- 自增列持久化
- 默认编码utf8mb4
- DDL原子性
- JSON增强
- 不在对group by进行隐藏排序
相关文章:
MySQL——性能优化与关系型数据库
文章目录 什么是性能?什么是关系型数据库?数据库设计范式 常见的数据库SQL语言结构化查询语言的六个部分版本 MySQL数据库故事历史版本5.6/5.7差异5.7/8.0差异 什么是性能? 吞吐与延迟:有些结论是反直觉的,指导我们关…...
【机器学习300问】12、为什么要进行特征归一化?
当线性回归模型的特征量变多之后,会出现不同的特征量,然而对于那些同是数值型的特征量为什么要做归一化处理呢? 一、为了消除数据特征之间的量纲影响 使得不同指标之间具有可比性。例如,分析一个人的身高和体重对健康的影响&…...
CSV文件中json列的处理2
如上所示,csv文件中包含以中括号{}包含的json字段,可用如下方法提取: import pandas as pd from datetime import date todaystr(date.today()) import jsonfilepath/Users/kangyongqing/Documents/kangyq/202401/调课功能使用统计/ file104…...
eNSP学习——部分VLAN间互通、部分VLAN间隔离、VLAN内用户隔离(MUX-VLAN)
MUX VLAN(Multiplex VLAN)提供了一种通过VLAN进行网络资源控制 的机制。通过MUX VLAN提供的二层流量隔离的机制可以实现企业内部员 工之间互相通信,而企业外来访客之间的互访是隔离的。 特点: 一、主VLAN端口可以和所有VLAN通信 二…...
【音视频】如何播放rtsp视频流
背景 现阶段直播越来越流行,直播技术发展也越来越快。Webrtc和rtsp是比较火热的技术,而且应用也比较广泛。本文通过实践来展开介绍关于rtsp、webrtc的使用过程。 概要 本文重点介绍如何播放rtsp视频流,通过ffplay方式以及VLC media player…...
Qt6入门教程 8:信号和槽机制(连接方式)
目录 一.一个信号与槽连接的例子 二.第五个参数 1.Qt::AutoConnection 2.Qt::DirectConnection 3.Qt::QueuedConnection 4.Qt::BlockingQueuedConnection 5.Qt::UniqueConnection 三.信号 四.connect函数原型 五.信号与槽的多种用法 六.槽的属性 一.一个信号与槽连接…...
Python如何操作RabbitMQ实现fanout发布订阅模式?有录播直播私教课视频教程
fanout发布订阅模式 基本用法 生产者 import json import rabbitmq# 建立连接 credentials rabbitmq.PlainCredentials(zhangdapeng,zhangdapeng520, ) # mq用户名和密码 connection_target rabbitmq.ConnectionParameters(host127.0.0.1,port5672,virtual_host/,credent…...
QT 原生布局和QML的区别
一、QML 与 Qt Quick的区别 1.1 从概念上区分 为了更精确地对两者进行说明,先看助手对 QML 的描述: QML is a user interface specification and programming language. QML 是一种用户界面规范和标记语言,允许开发人员和设计师创建高性能、流…...
视频转码实例:把MP4转为MKV视频,一键批量转换的操作方法
在数字媒体时代,视频格式的多样性是不可避免的。经常把MP4格式的视频转换为MKV格式。MKV格式有较高的音频和视频质量,能在其他设备或软件上播放视频。以下是云炫AI智剪如何把MP4视频转为MKV格式的一键批量转换操作方法。 已转码的mkv视频效果缩略图展示…...
异步Merkle Tree
1. 引言 前序博客: 利用多核的Rust快速Merkle tree Anoushk Kharangate 2023年论文《Asynchronous Merkle Trees》,其对Merkle tree数据结构进行修改,使得可跨多线程异步计算。 开源代码实现见: https://github.com/anoushk1…...
7. UE5 RPG修改GAS的Attribute的值
前面几节文章介绍了如何在角色身上添加AbilitySystemComponent和AttributeSet。并且还实现了给AttributeSet添加自定义属性。接下来,实现一下如何去修改角色身上的Attribute的值。 实现拾取药瓶回血功能 首先创建一个继承于Actor的c类,actor是可以放置到…...
Oracle/DM序列基本使用
序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。序列是一个计…...
校验ChatGPT 4真实性的三个经典问题:提供免费测试网站快速区分 GPT3.5 与 GPT4
现在已经有很多 ChatGPT 的套壳网站,以下分享验明 GPT-4 真身的三个经典问题,帮助你快速区分套壳网站背后到底用的是 GPT-3.5 还是 GPT-4。 大家可以在这个网站测试:https://ai.hxkj.vip,免登录可以问三条,登录之后无限…...
概率论与数理统计————3.随机变量及其分布
一、随机变量 设E是一个随机试验,S为样本空间,样本空间的任意样本点e可以通过特定的对应法则X,使得每个样本点都有与之对应的数对应,则称XX(e)为随机变量 二、分布函数 分布函数:设X为随机变量…...
掌握单例模式的极致挑战:能否默写饿汉式代码?
目录 1.前言 2.本质 3.代码默写 1.前言 在面试中,理解和掌握单例模式是非常重要的。本文旨在帮助读者深入理解饿汉式单例模式,并通过简洁明了的解释和示例代码,使读者能够轻松掌握并默写出饿汉式单例模式的代码实现。 2.本质 饿汉式单例模…...
力扣刷MySQL-第三弹(详细讲解)
🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:力扣刷题讲解-MySQL 🍹文章作者技术和水平很有限,如果文中出…...
PXE和kickstart无人值守安装
PXE高效批量网络装机 引言 1.系统装机的引导方式 启动 操作 系统 1.硬盘 2.光驱(u盘) 3.网络启动 pxe 重装系统? 在已有操作系统 新到货了一台服务器, 装操作系统 系统镜像 u盘 光盘 pe: 小型的 操作系统 在操…...
rabbitmq基础教程(ui,java,springamqp)
概述:安装看我上篇文章Docker安装rabbitmq-CSDN博客 任务一 创建一个队列 这样创建两个队列 在amq.fanout交换机里面发送数据 模拟发送数据 发送消息,发现一下信息: 所以得出理论,消息发送是先到交换机,然后由交换机…...
无重复字符的最长子串[中等]
优质博文:IT-BLOG-CN 一、题目 给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是"abc",所以其长度为3。 示例 2: 输入: s &…...
考研经验总结——目录
文章目录 一、写作顺序二、个人情况说明三、读评论四、一些小牢骚五、一些注意事项(持续更新) 一、写作顺序 我将准备从三个阶段开始介绍吧 考研前考研中考研后(也就是现在我的这种情况) 考研前我会分为:数学、专业…...
ElevenLabs河南话合成效果翻车?5大本地化陷阱与97.3%可听度提升实测方案
更多请点击: https://codechina.net 第一章:ElevenLabs河南话语音合成效果翻车现象全景扫描 近期多位河南本地开发者及方言内容创作者反馈,ElevenLabs官方API在调用其“multilingual v2”模型尝试生成河南话(中原官话郑开片&…...
Go 内存优化骚操作
1. 零内存占位符:struct{}{}原理:struct{} 是空结构体,Go 编译器对其做了特殊处理,它在内存中不占任何空间(大小为 0 字节)。场景 A:实现集合 (Set)map[string]struct{}。比起 map[string]bool&…...
XBOX360 KINECT体感游戏合集109个
实体机模拟器都可以用,模拟器游戏说明: 1,解压后把游戏文件夹放进模拟器Roms文件夹 2、模拟器运行文件为xenia_canary.exe。点击File—Open,找到游戏目录下的Roms文件夹,一直打开下级文件夹,直到看到以20位…...
三步掌握免费文档下载神器:kill-doc浏览器脚本完全指南
三步掌握免费文档下载神器:kill-doc浏览器脚本完全指南 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了…...
别再为多设备同步发愁了!手把手教你用NI-DAQmx的‘通道扩展’功能搞定多机箱数据采集
多设备数据采集同步实战:NI-DAQmx通道扩展功能深度解析 在工业测试与科研数据采集领域,工程师们经常面临一个棘手问题:当单个数据采集设备的通道数无法满足需求时,如何实现多个设备的无缝协同工作?想象一下汽车ECU测试…...
通过TaotokenCLI工具一键配置多开发环境提升团队协作效率
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken CLI工具一键配置多开发环境提升团队协作效率 在团队协作开发中,一个常见的挑战是确保所有成员都能快速、…...
Midjourney范戴克印相实战手册(2024唯一认证工作流):从sref灰度映射到氯化银颗粒模拟全链路拆解
更多请点击: https://intelliparadigm.com 第一章:范戴克印相的历史溯源与数字再生哲学 范戴克印相(Van Dyke Brown printing)诞生于19世纪末,是铁银盐印相工艺的重要分支,以荷兰画家安东尼范戴克命名&am…...
如何为你的Python数据分析脚本注入多模型AI能力
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何为你的Python数据分析脚本注入多模型AI能力 对于数据分析师和科研工作者而言,Python脚本是处理数据、生成报告的核…...
ComfyUI插件革命:如何用AI字幕生成器彻底改变你的图片描述体验
ComfyUI插件革命:如何用AI字幕生成器彻底改变你的图片描述体验 【免费下载链接】ComfyUI_SLK_joy_caption_two ComfyUI Node 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_SLK_joy_caption_two 你是否曾经为了一张图片绞尽脑汁却写不出合适的描述&a…...
格式规范否?8款AI论文网站排名,毕业答辩稳了!
论文选题总在反复纠结,文献检索耗时又费力?写作过程中思路混乱,逻辑难以梳理?查重修改一遍又一遍,时间精力都被消耗殆尽? 别担心!AI论文工具正在成为高校学子的得力助手。本文将基于内容生成质量…...






