一.客户端与服务端模型

1.mysql是一个典型的c/s服务结构

1.mysql自带的客户端程序(/application/mysql/bin)

mysql       mysqladmin   mysqldump

2.市面上大部分的开发语言都需要一个客户端连接程序连接mysql的服务端

2.mysql是一个守护进程,是一个二进制的程序

mysql.server是一个启动脚本,mysqld_safe是一个启动命令,mysqld则是一个守护进程

3.连接客户端方式

1.TCP/IP

mysql -uroot -p123 -h127.0.0.

2.socket(套接式连接)

mysql -uroot -p123 -S /tmp/mysql.sock
mysql -uroot -p123
mysql -uroot -p123 -hlocalhost

3.查看连接方式

1.并不是所有-h都是tcp/ip连接,所有远程连接都是tcp/ip连接

2.MySQL的默认连接时socket连接

3.socket连接速度十分快速,由于不需要建立tcp三次握手

4.实例

mysql的后台进程+线程+预分配的内存结构

5.mysql服务器的构成

1.连接层

  1)验证用户的合法性(ip,端口,用户名,密码,防火墙)

  2)提供两种连接方式(tcp/ip,socket)

  3)提供与sql层互相交互的专用线程

  4)查看文件是否拥有权限,执行某条sql语句

2.sql层

  1)接受连接层传来的sql语句

  2)检查语法能否执行

  3)检查语义(DDL,DML,DQL,DCL)

  4)解析器,解析sql语句,生成多种执行计划

  5)优化器,根据多种执行计划,选择最优的一种

  6)执行器,执行最优的执行计划

     提供跟存储引擎层交互的线程

     接受返回的数据返回给连接层

  7)将数据存入缓存

  8)记录binlog日志

3.存储引擎层

  1)接受sql层传下来的sql语句

  2)去磁盘空间寻找所要查找的数据

  3)提供一个与sql层交互的线程,将数据结构化成表的形式传给sql层

6.mysql的逻辑结构

1.库: show databases;

2.表: 元数据+真实数据行 show tables;

3.元数据:   列+其他属性(行数row+占用空间大小+权限)

4.列: 列名+数据类型+其他约束(非空,唯一键,主键,默认值,自增长,非负数等等)

7.mysql的物理结构

1.mysql最底层的物理结构是数据文件

2.存储引擎,存储引擎分很多种,mysql常用到的是InnoDB,MyISAM

3.段区块:

  1(  段:一个表一个段,多个区构成

  2(  区:多个页构成

  3(  页:最小数据存储单元。默认16k

  4(  分区表:一个分区是一个段

最新文章

  1. MySQL 变量和条件
  2. 从英文变形规则计算到Restful Api设计
  3. C# Winform程序把引用的dll放到指定目录
  4. web前端攻击详解
  5. 一个PHP混淆后门的分析
  6. 初识ActionScript
  7. Vmare12(虚拟机)安装Mac OS X Yosemite 10.10
  8. EasyUI DataGrid定制默认属性名称
  9. 动态数组ArrayList的使用
  10. linux_磁盘体系
  11. jq三级联动
  12. select 两层 第二个select需要加别名
  13. js数组根据指定字段(true or false)排序
  14. 范型方法 & 范型参数 & 范型返回值
  15. html5(四) canvas
  16. Codeforces.392E.Deleting Substrings(区间DP)
  17. IntelliJ idea 的破解
  18. Android ViewPage的使用(一)
  19. HTTP 请求未经客户端身份验证方案“Anonymous”授权。
  20. Spring中@Resource与@Autowired

热门文章

  1. 对layoutInflater的理解
  2. Android埋点技术分析
  3. centos7.2+php7.2+nginx1.12.0+mysql5.7配置
  4. 数据可视化d3.v4.js
  5. 第四章 数据库和SQL 4-3 数据的更新(UPDATE语句的使用方法)
  6. SQL Server ->> 存储过程sp_describe_first_result_set解析T-SQL语句的结果集结构信息
  7. RHEL7系统管理之网络管理
  8. 转:C# WinForm窗体及其控件的自适应
  9. Python静态方法实现单实例模式
  10. Linux 系统DNS解析原理