- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
????
???
MySQL数据库技术概述
???
?
?
?
?
???
???
?
???
?
?
?
一、体系结构
1、MySQL安装必需的体系结构组件:MySQL服务器,客户机程序以及MySQL非客户机程序;中央程序充当服务器,客户机程序连接到该服务器以发出数据请求。
2、MySQL客户机/服务器通信并不仅限于所有计算机都运行同一操作系统的环境。
客户机程序可以连接到在相同主机或不同主机上运行的服务器
客户机/服务器通信可以发生在计算机运行不同操作系统的环境中
客户机程序:
1、mysql/mysqldump客户机程序是使用最多的一个客户段工具了;
2、MySQLWorkbench是一款GUI工具,可以用来:
为数据库建模
执行数据库查询
执行管理任务
MySQL服务器:
1、服务器和主机之间的概念差别:
服务器:一个软件程序(mysqld),具有版本号和一系列功能;
主机:服务器程序在其上运行的物理计算机,其中包含:硬件配置、操作系统、网络地址
2、多个mysqld实例可同时在一台主机上运行;
服务器进程:
1、应用程序主要是mysqld进程来访问数据库服务器,由mysqld来操作不同的存储引擎(磁盘:InnoDB,MyISAM;内存:Memory;网络:NDB);
2、mysqld(服务器程序)进程可以划分为以下三个层:
-连接层:处理连接,此层存在于所有服务器软件(Web/邮件/LDAP服务器)上;
-SQL层:处理所连接的应用程序发送的SQL查询;
-存储层:处理数据存储,数据可以按不同格式和结构存储在不同物理介质上
连接层:
1、连接层可通过多种通信协议接受来自应用程序的连接:
-TCP/IP;
-UNIX套接字;
-共享内存;
-命名管道;
2、其中TCP/IP适用于整个网络,也是最常用的连接方式;客户机和服务器在同一台计算机上运行时,上面列出的其他协议仅支持本地连接;
3、此层针对每个连接维护一个线程,此线程处理查询执行;在某个连接可以开始发送SQL查询之前,将会通过验证用户名+口令+客户机主机来对该连接进行验证;
通信协议:
1、TCP/IP(传输控制协议/Internet协议,TransmissionControlProtocol/InternetProtocol):该通信协议套件用于连接Internet上的主机;在Linux操作系统中,TCP/IP是内置的,供Internet使用,从而使其成为通过网络传输数据的标准;这也是适用于Windows的最佳连接类型;
2、UNIX套接字:一种进程间通信形式,用于在同一台计算机上的进程之间形成双向通信链路的一端;套接字需要本地系统上的物理文件,这是适用于Linux的最佳连接类型;
3、共享内存:一种在程序之间传递数据的有效方式;一个程序创建其他进程(如果允许)可以访问的内存部分;此Windows显式“被动”模式仅适用于单台(Windows)计算机;默认情况下,共享内存处于禁用状态,要启用共享内存连接,必须使用–shared-memory选项启动服务器;
4、命名管道:命名管道的使用偏向于客户机/服务器通信,其工作方式与套接字非常相似;命名管道支持读/写操作,以及服务器应用程序的显式“被动”模式;此协议仅适用于单台(Windows)计算机;默认情况下,命名管道处于禁用状态,要启用命名管道连接,必须使用–enable-named-pipe选项启动服务器;
SQL层:
1、解析器:解析器验证语法是否正确;
2、授权:验证是否允许所连接的用户运行特定查询;
3、优化器:创建每个查询的执行计划,这是有关如何以最优化的方式执行查询的分步指令集,确定要使用哪些索引以及采用何种顺序处理表是此步骤的最重要部分;
4、查询执行:完成每个查询的执行计划;
5、查询高速缓存:(可选)可配置的查询高速缓存,可用于存储(并立即返回)执行的查询和结果;
6、查询日志记录:可以启用以跟踪执行的查询;
SQL语句处理:
第一次的选择主要是查看是否有配置开启[高速缓存查询]的特性;
存储层:
1、通过MySQL,可以使用称为“存储引擎”的不同类型的存储,数据可以存储在磁盘,内存和网络中;
2、数据库中的每个表可以使用任何可用的存储引擎,“磁盘”存储便宜且持久,而“内存”存储则要快得多;
3、InnoDB是默认存储引擎,它可提供事务,全文索引和外键约束,因此适用于各种混合查询;它具有多种用途,支持读密集型工作负荷,读/写工作负荷和事务工作负荷;
4、其他存储引擎包括:
-MyISAM:适用于频繁读取但很少更新的数据;
-MEMORY:在内存中存储所有数据;
-NDB:供MySQLCluster用来为高可用性数据提供冗余的可伸缩拓扑
文档评论(0)