网站项目接单,平面设计工作主要内容,wordpress修订版本删除,濮阳网站建设优化文章目录 什么是性能#xff1f;什么是关系型数据库#xff1f;数据库设计范式 常见的数据库SQL语言结构化查询语言的六个部分版本 MySQL数据库故事历史版本5.6/5.7差异5.7/8.0差异 什么是性能#xff1f;
吞吐与延迟#xff1a;有些结论是反直觉的#xff0c;指导我们关… 文章目录 什么是性能什么是关系型数据库数据库设计范式 常见的数据库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事务控制语言像commitrollback等。 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支持通用表达式窗口函数持久化函数自增列持久化默认编码utf8mb4DDL原子性JSON增强不在对group by进行隐藏排序