精华内容
下载资源
问答
  • 如果没有安装IDE设备,我们可以选择NONE参数,这样可以加快系统的启动速度,一些特殊操作,我们也可以通过这样来屏蔽系统对某些硬盘的自动检查。 图2部分是DRIVE A和DRIVE B软驱设置,如果没有A或B驱动器,...
  • 如果框图的X点的噪声电压可以尽可能减小,那耦合地噪声也会减小。   这可以通过直接将数字地接到系统模拟地来完成。如果DGND接到系统数字地或通过一个电阻或电感接到系统模拟地,X点相对于转换器的模拟...
  • 面向对象编程,继承是功能最强大的特性之一,通过继承,派生类可以继承基类的特性,可重用基类 代码。本章讨论公有继承,这种继承模拟了is-a关系,即派生对象是基对象的特例。例如,物理学家是科 学家的特例。...
  • 面向对象编程,继承是功能最强大的特性之一,通过继承,派生类可以继承基类的特性,可重用基类 代码。本章讨论公有继承,这种继承模拟了is-a关系,即派生对象是基对象的特例。例如,物理学家是科 学家的特例。...
  • 面向对象编程,继承是功能最强大的特性之一,通过继承,派生类可以继承基类的特性,可重用基类 代码。本章讨论公有继承,这种继承模拟了is-a关系,即派生对象是基对象的特例。例如,物理学家是科 学家的特例。...
  • 学习技术我们应该按照这么一个思路,开始我们尽可能多的对它的原理做一定程度的了解,这样我们在实际应用中会有更多的体会,同时我们操作的目的性也会更加明确,查找问题的时候而不是单凭经验去做,更多的时候我们会...

     

    慢慢体会到这么一个道理,基础决定你的深度,深度将会反应你未来的方向。学习技术我们应该按照这么一个思路,开始我们尽可能多的对它的原理做一定程度的了解,这样我们在实际应用中会有更多的体会,同时我们操作的目的性也会更加明确,查找问题的时候而不是单凭经验去做,更多的时候我们会根据对它结构原理的理解程度去判断分析从而得到最终的解决。

    不要在学一个新东西的时候,还是很“本能”地去试图,通过安装它来开始我们的第一步;磨刀不误砍柴功。言归正传,开始我们MySQL体验。

    mysqlarch

    噗嗤,这么大一个图暴露在你的面前,很兴奋吧!这就是MySQL数据库的一个详细的基础架构图,它可以分为三层:第一个浅色的模块是应用层,中间四个深色的模块为逻辑层,最下面那个深色模块右侧的圆柱体是它的物理层。接下来让我们更进一步去走进“她”,了解每部分的功能。

     

    1.Application Layer

    MySQL的应用层提供各种用户对数据库的访问,也就是为数据库提供一个访问接口,让外部世界与数据连接起来,起一个桥的作用。实际生活中,我们会遇见很多不同功能桥,最初简陋的独木桥,现在的过街天桥,跨江的公路桥铁路桥,它们都各施其职。而在MySQL应用层中也有这么三种用户:administrators,clients and query users。Administrators可以使用管理型的接口和工具对数据库进行维护操作;比如:只有管理员用户才有权使用mysqladmind去关闭数据库服务,以及对数据库进行创建和彻底删除操作,还有一些分析调优的工具isamchk 和myisamchk、对数据库进行备份恢复操作的mysqldump,也都需要在administrators的权限才能执行。Clients是通过一些接口或是工具利用MySQL APIs对数据库进行访问。Query users是通过查询接口,就是mysql这个命令,去连接数据库,近而发出一些查询请求。

    2.Logical Layer

    逻辑层是MySQL数据库中核心的功能层,它主要有三大块:查询处理(Query Processor)、事务管理(Transaction Management)、恢复管理(Recovery Management)和存储管理(Storage Management)。

        2.1 Query Processor

    当用户希望对底层数据库进行查看和处理操作,在这期间发生的查询都会被查询处理器进行提取并最优化以后执行输出,接下来我们说说整个的流程。

    当用户出一个请求,查询处理器(QueryProcessor)会先去判断请求的类型,也就是前面我们说的,由谁发出的,如果是admin,就由DDL编译器(DDL Compiler)编译后,直接由执行引擎(Excution Engine)对底层数据库进行操作。如果是client,那么,先通过内部DML预编译器(DDL Precompiler)将用户的命令转化成相应的查询语句,接下来查询分析器(Query Parser)将语句分解成解析书的结构,以便接下来的组件可以理解,预查询编译器(Query Preprocesor)会检查这个sql语句是否正确有效,然后安全管理器(Security/Integration Manager)将会核实该用户是否具有对该数据库有接入访问的权限,这些都确认之后,会由查询优化器(Query Optimizer)对sql查询最优化执行,正因为有了这个机制,执行引擎(Excution Engine)在进行查询处理时可以尽可能快速地完成,这也是MySQL数据库性能优于其他的数据库系统的原因。

        2.2 Transaction Management

    事务处理分为两个部分:事务管理器(Transaction Manager)和并发控制器(Concurrency-Control Manager),它们各自发挥着自己的多种职能。TM负责确保事务的自动化地记入日志和执行,还有解析死锁以及运行COMMIT和ROLLBACK SQL命令;CCM通过锁定机制确保事务分别独立的运行。

        2.3 Recovery Management

    回复管理也有两部分构成:日志管理器(Log Manger)和恢复管理器(Recovery Manager)。这两个功能从字面上就很好理解,LM负责纪录对数据库的每一项操作,RM则负责将数据库恢复到最近一次稳定状态。

       2.4 存储管理(Storage Management)

    在存储管理中,缓冲器管理(Buffer Manager)着内存和虚拟存储中的缓冲纪录,同时资源管理器(Resource Manager)和存储管理器(Storage Manager)也一起协同它完成对物理层数据库的操作。

    3.Physical Layer

     物理层其实就是实际数据的存放地,比如:数据文件、日志文件、统计资料、原数据、索引等等。

    到此,以上就是整个MySQL数据库理论性的结构 ,我们已经对MySQL数据库的内部结构有了一个初步的认识,原来就是这样。接下来就可以通过一些具体的实践操作,进一步深入体会这些部分在MySQL数据库中的功能特性。、

     

    几点说明:

    1. 在功能上,MySQL是基于组件的模块化设计,但事实上,MySQL既不是严格基于组件也非真正的模块化

    2. MySQL的源代码中混合使用C和C++,而且面向过程的代码中使用了很多类,这些类仅是负责数据类型的表示,没有太多体现面向对象编程的思想

    3. MySQL系统是用基于函数库和数据结构的方式整合代码的

    4. MySQL的结构师一个类似与子系统组成的架构,子系统通过紧密和高效的配合,组成一个可靠的数据库系统

     

    总结一下,MySQL包含以下系统和核心库

    网络连接和网络通信协议子系统

    线程,进程和内存分配子系统

    查询解析和查询优化子系统

    存储引擎接口子系统

    各类存储引擎子系统

    安全管理子系统

    日志子系统

    其他系统——如复制功能,错误功能

    mysys核心库文件

     

     

     

    DDL,DML,DCL,TCL的含义:http://blog.csdn.net/lengyuhong/archive/2010/10/26/5966187.aspx

    原始出处:http://www.mysqlsystems.com/2009/03/mysql_basic_architecture.html

    展开全文
  • 上述所建微前端应用中,父子间的通信是极其普遍且无法绕过的需求,而 qiankun 这方面当然有所考虑。 上述构建项目步骤中,有一步是主应用 main.js 注册子应用: registerMicroApps([ { name: 'app1', ...
  • 8.4.1 循环提交? 264 8.4.2 使用自动提交? 270 8.5 分布式事务 271 8.6 自治事务 273 8.6.1 自治事务如何工作? 273 8.6.2 何时使用自治事务? 276 8.7 小结 279 第9章 redo与undo 281 9.1 什么是redo? ...
  • 8.5.1 循环提交 255 8.5.2 使用自动提交 261 8.6 分布式事务 261 8.7 自治事务 263 8.7.1 自治事务如何工作 264 8.7.2 何时使用自治事务 265 8.8 小结 268 第9章 redo与undo 269 9.1 什么是redo 269 ...
  • Visual C++ 2005 入门经典 详细书签版

    热门讨论 2013-02-02 16:39:43
    本书延续了Ivor Horton讲解编程语言的独特方法,从中读者可以学习Visual C++ 2005的基础知识,并全面掌握MFC和Windows Forms访问数据源的技术。此外,本书各章后面的习题将有助于读者温故而知新,并尽快成为C++...
  • 本书延续了Ivor Horton讲解编程语言的独特方法,从中读者可以学习Visual C++ 2005的基础知识,并全面掌握MFC和Windows Forms访问数据源的技术。此外,本书各章后面的习题将有助于读者温故而知新,并尽快成为C++...
  • Microsoft给C++添加了许多Microsoft专用的关键字,并把Visual Basic演变为Visual Basic 2013,保留了一些基本的Visual Basic语法,但设计上完全不同于原始Visual Basic,从实际应用的角度来看,Visual Basic 2013...
  • 如此讲来,企业选型时,已经具备了对软件厂商成熟软件系统的交流条件,企业ERP选型如果能够有成熟的行业化方案满足应用,就尽可能不要走“平台化定制开发”的路线,特别是当这家软件厂商没有同行业实施成功过,...
  • php高级开发教程说明

    2008-11-27 11:39:22
    味,很理论化,但在应用中是不可放弃的。下面我们就最重要的问题进行最基本的讨论。 1.3.1 选择名字 选择变量名可能是程序员最常做、但却想得最少的。如果你已建立了这些大项目中出现 的变量名字、类型、定义位置...
  • 在实际Web应用中新标准的采纳程度正在以令人目眩的速度不断地变更着,众多浏览器厂商也在不断加快对CSS3新特性的支持。在编写这本图书的过程中,我也被迫不断更新书中的浏览器支持表格。 面对自己正在使用的浏览器...
  • 我想,虽然第二版有着这样那样的变化,但有一点没有变,那就是本书试图将我编写自己操作系统的过程的经验尽可能地告诉读者,同时尽可能将我当初的思路和编码过程呈现出来。很可能读者比我更聪明,有更好的解决...
  • 我想,虽然第二版有着这样那样的变化,但有一点没有变,那就是本书试图将我编写自己操作系统的过程的经验尽可能地告诉读者,同时尽可能将我当初的思路和编码过程呈现出来。很可能读者比我更聪明,有更好的解决...
  • 本书围绕语言及库功能来组织,内容涉及c++的主要特征及标准库,并通过系统软件领域的实例解释说明一些关键性的概念与技术。 本书的目的就是帮助读者了解c++是如何支持编程技术的,使读者能从中获得新的理解,从而...
  • 本书围绕语言及库功能来组织,内容涉及c++的主要特征及标准库,并通过系统软件领域的实例解释说明一些关键性的概念与技术。 本书的目的就是帮助读者了解c++是如何支持编程技术的,使读者能从中获得新的理解,从而...
  • C++程序设计语言(特别版)--源代码

    热门讨论 2012-04-23 07:33:51
    本书围绕语言及库功能来组织,内容涉及c++的主要特征及标准库,并通过系统软件领域的实例解释说明一些关键性的概念与技术。 本书的目的就是帮助读者了解c++是如何支持编程技术的,使读者能从中获得新的理解,从而...
  • 软件工程知识点

    2012-12-02 21:34:25
    软件的实际创建,则将软件系统按功能分解为许多增量构件逐个地创建与交付,直到全部构件创建完毕,并都被集成到系统之交付使用。 比较瀑布模型、原型进化模型,增量模型具有非常显著的优越性。但增量模型对...
  • 3.1.5 if语句使用代码块 86 3.1.6 嵌套的if语句 87 3.1.7 更多的关系运算符 90 3.1.8 逻辑运算符 93 3.1.9 条件运算符 97 3.1.10 运算符的优先级 99 3.2 多项选择问题 103 3.2.1 给多项选择使用else-if...
  • 3.1.5 if语句使用代码块 86 3.1.6 嵌套的if语句 87 3.1.7 更多的关系运算符 90 3.1.8 逻辑运算符 93 3.1.9 条件运算符 97 3.1.10 运算符的优先级 99 3.2 多项选择问题 103 3.2.1 给多项选择使用else-if...
  • 第二个疑问:还是zhi1ong大佬说,通过广播,或者Activity转发这个事件,比方说让Fragment统一依赖一个接口,然后Activity转发。 4.8 组件化实践的切换run 你完全可以采取拿来注意,将任意一个组件拿...
  • 问题4-26:以太网,有没有可能在发送了512 bit(64 B)以后才发生碰撞? 问题4-27:有的文献会见到runt和jabber这两个名词,它们是什么意思? 问题4-28:当局域网刚刚问世时,总线形的以太网被认为可靠性比...
  • 于是程序不断加打印语句,通过后台的DBWIN调试程序跟踪,最后终于定位为:每当执行到portdsl.c的DeviceDslMsgProc()函数处理U口透传的 if ( SPC_STATE_OK == pSpcCB->bySpcState ) 语句时,主机复位。但是该...
  • 第四篇收录了使用调试器探索计算机世界的若干学习笔记,包括调试器细品CPU,通过调试器观察和解码堆块结构,透视Windows 8的新类型应用以及使用调试器监视启动、睡眠和唤醒三大基本过程等。 前言 过去十几...
  • 内容主要集中大多数企业常见的问题之上,如安装和升级到oracle database 11g数据库软件、创建数据库、导出和导入数据、数据库的备份与恢复、性能调优,等等。  本书还提供了dba完成本职工作必备的基本的uniix...
  • 软件测试经典面试题 (超实用)

    热门讨论 2012-02-16 13:48:08
    如果有,请试述该工具的工作原理,并以一个具体的工作的例子描述该工具是如何在实际工作中应用的。 26 92、软件测试活动的生命周期是什么? 26 93、请画出软件测试活动的流程图? 26 94、针对缺陷采取怎样管理措施...
  • Visual Studio程序员箴言--详细书签版

    热门讨论 2012-10-16 20:37:39
    初学者还是经验丰富的用户来说,了解、掌握并在实际工作使用这些技巧都能在开发达到事半功倍的效果。 作译者 作者: Sara Ford  Sara Ford 作为Visual Studio核心团队负责测试的软件设计工程师,Sara Ford...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

在实际应用中尽可能不要通过