mysql 体系结构

一、数据库与实例

数据库物理操作系统文件或其他形式文件类型的集合。再MySQL数据库中,数据库文件可以是frm、MYD、MYI、ibd结尾的文件。当使用NDB引擎时,数据库的文件可能不是操作系统上的文件,而是存放于内存中的文件

数据库实例:Mysql数据库由后台线程以及一个共享内存区组成。共享内存可以被运行的后台线程所共享。数据库实例才是真正用于操作数据库文件的东西。数据库实例是一个程序,位于用户与操作系统之间的一层数据管理软件,用户对数据库数据的任何操作(数据库定义、数据查询、数据维护)都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道

mysql 被设计为也给单进程多线程架构的数据库,Mysql数据库实例再系统上的表现就是一个进程。
启动实例时,MySQL数据库会去读取去配置文件,根据配置文件的参数来启动数据库实例。
命令 mysql --help | grep my.cnf 可以查看MySQL数据库实例启动时,会在哪些位置查找配置文件。

二、MySQL体系结构

在这里插入图片描述

MySQL由以下几部分组成:
1、连接池组件
2、管理服务和工具组件
3、SQL接口组件
4、查询分析器组件
5、优化器组件
6、缓冲组件
7、插件式存储引擎
8、物理文件

MySQL的体系结构是插件式的。

三、MySQL存储引擎

MySQL由很多种存储引擎,每个存储引擎都有各自的特点,能够根据具体的应用建立不同存储引擎表。用户还可以根据MySQL预定义的存储引擎接口编写自己的存储引擎。若用户对其中一种存储引擎的性能不满意,可以通过修改源码得到想要的特性。

InnoDB存储引擎

1、支持事务
2、设计目标主要面向在线事务处理(OLTP)的应用

特点:
1、行锁设计、支持外键
2、每张表的存储都是按主键的顺序进行存放,如果没有显示地在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键。

MyISAM存储引擎

1、不支持事务、表锁设计
2、支持全文索引

特点:
缓冲池只缓存索引文件,不缓冲数据文件。
MYD用来存放数据文件
MYI用来存放索引文件

NDB存储引擎

是一个集群存储引擎

特点:
数据全部放在内存中,因此主键查找速度非常快
可以通过添加NDB数据存储节点线性提高数据性能
连接操作是在MySQL数据库层完成的,而不是在存储引擎层完成

Memory存储引擎

将表中的数据存放在内存中,适合用于存储临时数据的临时表。

特点:
默认使用哈希索引,而不是B+树索引。
只支持表锁
并发性能差

Archive存储引擎

特点:
只支持INSERT和SELECT操作。
使用zlib算法将数据行进行压缩后存储,压缩比可达1:10.
适合存储归档数据(日志信息)
主要用于提供高速的插入和压缩功能

四、连接数据库

连接MySQL操作是一个连接进程和MySQL数据库实例进行通信,本质上是进程通信。

1.TCP/IP

这种方式在TCP/IP连接上建立一个基于网络的连接请求,一般情况下客户端在一台服务器上,MySQL实例(server)在另一台服务器上,这两台机器通过TCP/IP网络连接。

命令 mysql -h192.168.0.101 -u david -p 表示当前用户(david),请求IP为192.168.0.101的主机的MySQL实例。

2.Unix域套接字

在Linux和UNIX环境下,可以使用UNIX域套接字。不过只能在MySQL客户端和数据库实例在一台服务器上的情况下使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值