数据库优化1(逻辑结构)

数据库-数据库设计(二) 数据库设计 逻辑结构设计 概念结构是独立于任何一种数据模型的信息结构,逻辑结构设计的任务就是把概念结构设计阶段设计好的基本 E-R 图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。 逻辑结构设计的一般步骤:1)、将概念结构转化为一般的关系、网状、层次模型。2)、将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换。3)、对数据模型进行优化。 1)、E-R 图向... 阅读详情


  写了几年的程序总结来说程序只是操作数据的一个逻辑,而对于数据库我自己并没那么深入的了解,经过一段时间的学习,就分享下自己的心得吧,

    我个人对mysql数据库比较有好感,要先了解mysql数据库就先看看它的逻辑架构,下面有一张图:
其实数据库总的来说就两部分,数据库服务和数据仓库,前者是服务与我们对数据的管理,而后者就是来存储。来说说这个图
   最上面的服务并不是mysql独有的,它仅仅只是基于网络的一个客户端或者是服务端。
  第2层包含了mysql的核心服务:解析,分析,优化 ,缓存等等
  第3层就是存储引擎了,负责对数据的存储和提取,这些引擎和linux的系统文件一样,各有千秋。

   mysql服务会首先通过解析器解析sql,然后看是否在缓存中存在,存在就唉缓存中查询,否则就将sql进行优化,我们可以可以通过关键字来影响优化器,从而选择优化的决策,当然也可以修改mysql提供一些参数配置,让用户来选择优化的方式。

  musql中最重要的一部分是并发控制,而谈到并发就不得不提锁,锁的颗粒度,(要提醒的是mysql是不支持行级锁的)和事务,
  数据库事务要遵循的4大基本原则:ACID, 原子性,一致性,隔离性,持久性,对于这4个特性定义上的理解一定要非常深刻,这会影响到你是否能真正明白数据库应该如何优化,而糟糕的是这些概念性的定义确实比较抽象难以理解。
  原子性:是用来保证一个事务成为一个最小单位切不可分割,也就是说在整个操作的过程中只有两种情况要么成功或者失败(我们先不考虑一直等待的情况)
  一致性:这点比较难理解,在一个事务中,一些数据的状态可能会发生N次的变化,而一致性就要保证这些数据要么为初始的状态或者是完成的状态,而这种一致性其实是一种强一致性,是一种假象,这点在这里不做深究后面在讨论。
  隔离性:在一个事务没有完成提交之前,我们其实是将该事务范围内的数“保护”起来的,也就是所谓的隔离起来让其他人不可见,这就是隔离性,但当我们去研究隔离级别的时候会发现隔离性的本质其实就是对一致性的一种破坏,而这也是数据库中安全性和性能取舍的本质所在
   持久性:一但事务提交之后,数据就会永久的保存在数据库中。但我们真的去深究持久性的持久程度又是一个比较模糊的概念。

  要保证事务的ACID是一件很难的事,所以会很影响性能,事务的本质就是锁,而有锁的地方必然放弃了性能,大神们为了能两者兼得做了很多事,主要是从锁的颗粒度和锁的“松紧”程度去考虑,所谓锁的颗粒度就是锁住内容的多少,通常来说,锁的越少 性能越高,而锁的“松紧”程度就是对隔离级别的调整,
   隔离级别一共有4个级别:
         read  uncommitted(读未提交)
         read commit(读已提交)
         repeatable read (可重复读)
         serializable(串行化)
       他们的级别依次增高
       很多文章只是仅仅对这4哥隔离级别做了一些区分,而没说明他们的本质,当然要真正说明清楚他们的的区别确实是一件很不容易的事
    而且比较难理解,说到本质这要说到这4哥级别的历史和由来,在N年前(我不记得是几几年了)是只有一种级别的那就是串性化,后来一些聪明的人为了提高性能,总结的发现:对数据库的操作只有4总情况:分别是:读读  写写   读写  写读,聪明人发现在有些情况下是没有必要把隔离性控制的那么死的,放松一些是不会带来“太大的问题”,所以根据这4种情况依次建立了4层隔离级别,当然困难的写写这种情况是没人敢放宽的。mysql默认的隔离级别是repeatable read,但大多数其他数据库的级别是 read commit(比如oracle),虽然repeatable read隔离级别会带来幻读的情况,但是mysql使用存储引擎有InnoDB,InnoDB底层使用的是MVCC快照隔离技术解决了幻读的情况。另外mysql还有其他的一些存储引擎:myisam,archive,csv等等。


  以上是是对mysql结构上的大致了解,而对于数据库事务的理解还是太过去浅显,要真正理解事务的ACID的本质我们才能走的更远,包括后面我们要怎么处理在分布式数据库中如何保证事务的特性。
  
数据库E-R图与逻辑结构设计实战详解 E-R图(Entity-Relationship Diagram)是数据库概念设计的核心工具,用于抽象现实世界中的数据结构。其基本组成包括实体(Entity)、属性(Attribute)和联系实体代表可区分的对象,如“学生”或“课程”;属性描述实体的特征,如“学号”“课程名称”;联系则表达实体间的关联关系,如“选修”联系连接“学生”与“课程”。三者共同构成数据模型的语义骨架,为后续逻辑设计奠定基础。E-R元素映射目标处理方式说明强实体独立关系表。 阅读详情

相关推荐

ComfyUI安装包运行前准备:安装Git

Git 是一个分布式版本控制系统(Version Control System, VCS),用于跟踪和管理文件(尤其是代码)的变更历史。 简单理解就是,git是用来管理文件的版本的,如果有新的版本,就可以使用git来更新。

聚梦小课堂 2万+

数据库 逻辑优化,物理优化

物理优化:join optimize,如查询表之间是否有join的可能,如果可以join,该如何join:nested还是corss?再者驱动顺序,ab还是ba,这要去做代价分析,ab的cost多少,ba的cost多少;要去查询表的相关信息,比如多少列之类的。逻辑优化:prepare 语法解析,将sql语法解析成语法树,并进行优化,条件判断:有些条件是否可以去除,有些列是否可以不涉及等等, 等值消除,常量判断等等。来至《数据库系统实现》第五章。

qq_37061368的博客 520

VTK实战笔记(1)在win11搭建VTK-9.4.2 + qt5.15.2 + VS2019_x64开发环境

Visual Studio 2019 + qt5.15.2 + vtk9.4.2

心向阳光,斗志昂扬! 973

数据库优化:结构优化

良好的数据库逻辑设计和物理设计是数据库获得高性能的基础 数据库结构优化的目的 1.减少数据冗余 2.尽量避免书维护中出现更新,插入和删除异常 插入异常:如果表中的某个实体随着另一个实体而存在,则无法插入 更新异常:如果更改表中的某个实体的单独属性时,需要对多行进行更新 删除异常:如果删除表中的某一实体则会导致其他实体的消失 3.节约数据存储空间 4.提高查询效率 逻辑涉及 涉及数据的逻辑存储机构...

Master_Dk的博客 534

比较几款国际主流的电子元器件及物料清单管理软件 – 工具汇总

Arenasolution 老牌的基于云计算物料清单管理软件,bom.com就是他们家的,10天免费试用,功能被分成4个不同的产品, 和传统ERP功能上有重叠,偏向于物流生产规划,一定程度可以取代ERP的生产规划模块,平均价格70美元/月/席位。网页客户端,不支持离线   SiliconExpert 曾经的老牌物料清单管理软件,后被Arrow 收购,14天免费试用,功能被分成4个不同的产品

u012062784的专栏 7235

从梯度泄露到数据复原:DLG与iDLG算法实战解析

本文深入解析了DLG与iDLG算法在梯度泄露与数据复原中的实战应用,揭示了联邦学习中的隐私风险。通过详细代码示例和实验数据,展示了如何从梯度中复原原始训练数据,并探讨了梯度压缩、差分隐私等防御措施。文章特别强调了iDLG算法在标签破解中的高效性,为AI安全领域提供了重要参考。

weixin_30552811的博客 191

oracle 逻辑优化,Oracle逻辑结构优化的解剖

Oracle逻辑结构优化其实就是通过增加、减少或者调整逻辑相关结构,来提高其应用的效率,以下就是通过对其基本表的设计以及索引、聚簇的讨论来分析Oracle逻辑结构的优化。以下就是文章的主要内容的介绍。基本表扩展数据库性能包括存储空间需求量的大小和查询响应时间的长短两个方面。为了优化数据库性能,需要对数据库中的表进行规范化。一般来说,逻辑数据库 设计满足第三范式的表结构容易维护且基本满足实际应用的要...

weixin_32005771的博客 301

别再混淆了!5分钟搞懂机器人导纳控制与阻抗控制的本质区别(附Simulink对比仿真)

本文深入解析机器人柔顺控制中的导纳控制与阻抗控制的本质区别,通过信号流方向、架构对比和应用场景三个关键视角进行详细阐述。文章还提供Simulink对比仿真案例,帮助读者快速理解两种控制策略的差异及其适用场景,特别适合机器人控制领域的研究者和工程师参考。

weixin_42543046的博客 604

数据库优化设计方方案

概要:讨论了基于第三范式的数据库表的基本设计,着重论述了建立主键和索引的策略和方案,然后从数据库表的扩展设计和库表对象的放置等角度概述了数据库管理系统的优化方案。 关键词:优化(Optimizing)        第三范式(3NF)         冗余数据(Redundant Data)         索引(Index)         数据分割(Data Partitionin

zuge的专栏 1075

【ESP32使用MAX98357播放音频】

在物联网和智能家居领域,音频播放功能越来越受到重视。ESP32作为一款功能强大的微控制器,结合MAX98357音频放大器模块,可以实现高品质的音频播放。本文将详细介绍如何使用ESP32的I2S接口通过MAX98357进行音频播放。

vor234的博客 7524

STM32面试知识点总结分析

通过Boot引脚设定,寻找初始地址初始化栈指针 __initial_sp指向复位程序 Reset_Hander设置异常中断 HardFault_Handler设置系统时钟 SystemInit调用C库函数 _main。

嵌入式技术开发 2513

数据库系统优化--业务逻辑设计优化

当我们优化一个系统时,有时发现一种情况就是自己修改SQL,索引以及分区是不能解决性能问题的。这时你要考虑业务逻辑优化和表设计的重构。这两点的确和设计结合的很紧密。  业务逻辑优化  结合实际,我们先谈谈业务逻辑优化。  案例一:  我们的系统一个文档模块,客户点击时很慢,通过性能分析,是点击是去查询数据库,这时系统是通过Hibernate来两步处理:  1,计算该类型的文档数量总数。  2,显示最

phphot 1705

第21章—技术管理篇(上):身为技术人该怎样带好团队并做好管理者

上节讲了职业规划和学习提升这两个话题,随着职业规划的不断落地,或者自己能力的不断提升,大家也会逐渐被提拔成“职级更高”的人。企业规模扩张时,员工数量也会变多,意味着Boss需要更多的人来辅助管理,而管理者会从外部招聘吗?也许会,但大多企业更喜欢从内部选拔,毕竟人的天性更希望找的人值得信赖。此时,一些能力不错、做事靠谱的老员工,就会被“赶上”管理者的位子。作管理不难,但想要“”就需要一定情商。

运维老生常谈 1364

主流数据库——一、数据库基础

1.数据库技术: 解决了计算机信息处理过程中有效地组织和存储海量数据的问题 ①数据(data):描述数据的符号,数据时数据库中存储的基本对象 ②数据库(database DB):描述和存储数据的集合 ③数据库管理系统(DBMS):管理数据库的管理软件 ④数据库系统(DBS):引入数据库后的系统,以上三者等构成 2.数据库系统特征: 数据结构化(严格遵循格式和长度规范,比如,人名长度),数据共享性高\冗余度低(一个数据集合中重复数据叫做数据冗余,冗余度低是减少了数据的重复)\易扩充(行和列都..

qq_46007633的博客 1511

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【Kilav】数据库知识点速通 其二

基本的数据库复习知识

cos127829637的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

计算机三级数据库题10道-天天练12

如果实体集的一个实例的唯一标识依赖于该实体集与其他实体集的联系,那么它就是从属标识符实体集或简称为从属实体集;每个实体类型都有自己的标识符,如果两个实体集之间发生联系,其中一个实体类型的标识符进入另一个实体类型并与该实体类型中的标识符共同组成其标识符时,这种联系则称为标定联系。在进行数据库设计时,考虑到应用主要以分析型查询为主,决定对表采取按列存储的实施方案,这一操作属于数据库物理结构设计中的数据分布设计内容。本题中为了保证查询性能,决定将原来的几个表合并为一个表,属于数据库的物理结构设计。

MaryY_TT的博客 814

温度PID控制PLC程序

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

数据库基础(五)——数据库范式

为什么需要规范数据库中的数据格式?其实很简单,数据不加以规范的话会在不同的表中出现相同的字段,这样会造成存储空间浪费以及数据冗余的情况出现;如果我们大量使用外键做表间连接,还有可能出现数据冲突,修改数据操作异常等情况(先说明一下,个人从宏观角度将数据库的CRUD操作分类为修改和查询操作,其中修改操作包括修改、删除、插入。以后除非区分CRUD外,本人博客皆统称为修改和查询操作)。

老程的小白博客空间 661

1NF~BCNF 与反规范化策略详解(附丰富例子)

设计原则适用情况注意事项规范化设计优先数据一致性关键,更新频繁控制冗余,维护成本低反规范化策略读性能关键,数据变化频率较低需做好同步机制(如触发器、应用维护)缓存 vs 冗余字段高吞吐系统可结合缓存与冗余字段优化冗余字段适合用于可预计算的静态属性。

nbsaas-boot基于Request-Response的企业级快速开发框架 451

SQL Server 数据库设计规范

数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求。数据库设计过程中命名规范很是重要,命名规范合理的设计能够省去开发人员很多时间去区别数据库实体。最近也因为工作需要所以整理出了这个word文档,望大家指正。

Jote1E585的博客 456

DB2 UDB V8.1 管理 学习笔记(一)

DB2 UDB V8.1 管理 学习笔记DB2 学习笔记 - AIview.comLast updated on Wednesday, August 24, 2005 Skip to navigation You are here: Home » Study Notes » Individual | August 2004DB2 UDB V8.1 管理 学习笔记(一)

风之去向 475

计算机三级数据库分析与设计练习题(四)、这项工作属于数据库结构设计中的、下列关于构件设计的说法,错误的是、下列不能提高事务吞吐量的做法是、进行项目的成本估算属于下列哪项基本活动、矩形框右边的箭头代表该

在IDEF1X数据建模方法中,老师和学生之间的一对多"导师"联系属于、考虑到应用主要以分析型查询为主,决定对表采取按列存储的实施方案,这一操作属于数据库的、构件属于其中的、提高事务的隔离性级别带来的好处是、下列不属于数据库应用系统系统规划与分析阶段任务的是、代表功能活动的约束条件的是、下列联系类型中不会产生从属实体集的是、这一操作属于数据库的、需要考虑系统的每TPS代价,这属于、数据分布设计属于数据库应用系统设计步骤中的

Redamancy06的博客 1204

【数据库设计(第二章)学习笔记】

第二章是数据库设计的核心基础章节,核心围绕数据库设计的完整流程、需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施与维护展开,是从业务需求到落地数据库的全流程方法论,掌握本章内容可独立完成中小型业务系统的数据库全流程设计。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。将需求分析得到的用户需求抽象为信息世界的概念模型,是整个数据库设计的关键,不依赖具体的数据库管理系统(DBMS)。

lrh159357的博客 369

**规范化理论**:也称为关系规范化理论,核心是研究函数依赖关系,通过规范化过程指导数据库模式设计

2. **关系模型三要素** - **数据结构**:统一使用二维表(关系)来表达实体和实体之间的联系,是模型中数据的组织和表示方式。 - **数据操作**:运算体系包括等价的关系代数和关系谓词演算,实际应用中通过结构化查询语言(SQL)实现对数据的操作。 - **数据约束**:包含实体完整性、参照完整性、域完整性、用户定义完整性四类约束规则,保证存储数据的正确性和一致性。 3. **规范化理论**:也称为关系规范化理论,核心是研究函数依赖关系,通过规范化过程指导数据库模式设计,解决数据插入、删除、更新异常和

[Blog][Domain] programb.blog.youkuaiyun.com 31

第3章 数据库结构设计

3.1数据库概念设计 数据库概念设计主要解决数据需求,即如何准确地理解数据需求,真实地把应用领域中要处理的数据 组织、定义描述清楚,以支持数据库设计后续阶段的工作。 3.1.1概念设计的任务 数据库概念设计阶段的目标是: (1)定义和描述应用领域涉及的数据范围。 (2)获取应用领域或问题域的信息模型。 (3)描述清楚数据的属性特征。 (4)描述清楚数据之间的关系。 (5)定义和描述数据的约束。 (6)说明数据的安全性要求。 (7)支持用户的各种数据处理需求。 (8)保证信息模型方便地转换成数据库的逻...

修罗神的海岛 3432

Qwen1.5-1.8B GPTQ项目实战:数据库课程设计文档自动生成

本文介绍了如何在星图GPU平台上自动化部署🤖 Qwen1.5-1.8B GPTQ镜像,以辅助数据库课程设计文档的生成。该平台简化了部署流程,用户可快速调用此轻量化大语言模型,输入简单的系统描述(如学生选课系统),模型便能自动生成包含需求分析、ER图说明、SQL语句等在内的专业文档框架,显著提升学习与工作效率。

weixin_29097457的博客 87

【MySQL】数据库理论知识

1、数据库系统和数据库管理系统 DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,用于科学地组织、存储和管理数据、高效地获取和维护数据。 DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员 2、数据库的三级系统结构 外模式(子模式或用户模式):是数据库用户的数据视图,是与某一应用有关的数据逻辑表示,应用程序(一个数据库可有多个外模式) 模式(逻辑模式):是数据库中全部用户的数据逻辑结构和特征的描述,是所以用户的公共数据视图(中间层

为了远大的理想,冲锋! 3111
上一篇: Spring -aop 实现系统日志
下一篇: 多线程之浅谈线程概念
breaknull
博客等级 码龄14年 15粉丝 29原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值