MySQL体系结构

MySQL体系结构:分为连接模型、服务器构成、逻辑结构、物理结构、实例、存储底层结构(段|区|快);

#1、连接模型

客户端和服务端CS模型,有以下两种连接方式:TCP/IP  、Socket

#2、逻辑结构(逻辑对象) 

  mysql的逻辑对象:作为管理员或者开发人员操作的对象

库(database,schema)                        Linux中的目录
库名,库属性                                     目录名,属性

表(table)                                linux中的文件
表名字,列(列名字,列属性),表属性,表数据             文件名,属性,数据行

库:
    库连可以包含多张表
表:
    二维表
    列结构:列名字+列定义(约束)
    数据行

元数据和真实数据行:
    元数据:列+其他的一些属性(行数+占用空间大小+权限)
            列:列名+数据类型+其他约束(非空、唯一、逐渐、非负数、自增长、默认值

#3、物理结构

  库: 在盘上就是一个目录

  表: 使用多个文件存储表的信息

补充说明:
## mysql的存储引擎是如何把数据存在磁盘上的?
mysql数据最底层的是操作系统上的一个文件
1、对于mysql来讲,最底层(物理层)是数据文件,也是存储引擎层打交道的对象是数据文件
2、存储引擎分为很多种类
    和Linux文件系统类型一样,分为很多种类;    
    对于不同的存储引擎,它的存储机制不一样
3、不同存储引擎区别:
    存储方式:导致了安全性、性能的不同
******************************************************************************
举例:
## No1: myisam 存储引擎存储方式(系统默认引擎)
    cd  /application/mysql/data/mysql/
    -rw-rw---- 1 mysql mysql  10684 Nov  5 23:21 user.frm        一部分表结构信息 
    -rw-rw---- 1 mysql mysql    436 Nov  5 23:21 user.MYD        行记录,真实信息
    -rw-rw---- 1 mysql mysql   2048 Nov  5 23:21 user.MYI        索引信息
注:myisam是使用三个文件存一张表 补充说明:二进制文件内容怎么查看: strings 文件名 ## No2: innodb 存储引擎存储方式(推荐使用引擎) 进入mysql的test数据库,创建一个oldboy表 mysql use test; create table oldboy(id int); 退出数据库,进入下面目录 cd /application/mysql/data/test/ -rw-rw---- 1 mysql mysql 8556 Nov 6 20:56 oldboy.frm -rw-rw---- 1 mysql mysql 98304 Nov 6 20:56 oldboy.ibd 注:innodb是两个文件存一张表 ******************************************************************************

#4、实例

MySQL数据库挂了系统 = 实例 + 数据
实例 = mysqld后台守护进程 + master thread(主线程) + write thread(工作线程)

#5、存储底层结构--段|区|块

 页:(page ==16k) mysql存储最小分配单元
 区:一个或多个连续的也构成(解决页分配不连续的问题)
 段:多个区构成,我们可以把一张表(非分区表)认为是一个段

 

posted @ 2020-05-06 17:19  Panda-Li  阅读(249)  评论(0编辑  收藏  举报