一.客户端与服务端模型

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(  分区表:一个分区是一个段

MySQL学习【第四篇mysql体系结构管理】的更多相关文章

  1. 我的MYSQL学习心得(十三) 权限管理

    我的MYSQL学习心得(十三) 权限管理 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) ...

  2. 数据库MySQL学习笔记高级篇

    数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...

  3. MySql学习笔记四

    MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...

  4. openresty 学习笔记四:连接mysql和进行相关操作

    openresty 学习笔记四:连接mysql和进行相关操作 毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库.比如首次查询数据在red ...

  5. “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现)

    “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现) 一.前三篇的内容是否对您有帮助呢?如果有的话,请您继续关注这篇吧,这篇主要是实现”用户管理“的 ...

  6. MySQL学习(一)——Java连接MySql数据库

    MySQL学习(一)——Java连接MySql数据库 API详解: 获得语句执行 String sql = "Insert into category(cid, cname) values( ...

  7. MySQL学习笔记Windows篇<一> Welcome to MySQL

    MySQL安装完毕后没有图形化操作界面,图形化管理界面需要另行安装,个人比较喜欢Navicat,界面更像SQLserver: 此篇学习笔记所有操作均使用命令行中完成: 1.开启/停止服务 使用MySQ ...

  8. MySQL学习【第二篇安装】

    一.Mysql安装方式 1.安装方式 1.rpm,yum安装 安装方便,安装速度快,但无法定制 2.二进制安装 不需要安装,解压即用,不能定制功能 3.编译安装 可定制,安装很慢,安装分为四个步骤 1 ...

  9. MySQL学习【第九篇存储引擎】

    一.存储引擎介绍 1.我们知道mysql程序构成由连接层,sql层,存储引擎层.存储引擎层和磁盘进行交互,由其去取数据,而我们取得数据是表的形式展现出来,谁做的呢?就是存储引擎结构化成表的形式返回给用 ...

随机推荐

  1. join() 方法详解及应用场景

    总结:join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用jo ...

  2. 程序控制结构及for循环、foreach循环、迭代器

    结构化程序设计 三种基本控制结构:顺序结构.选择结构.循环结构. 在这种思想的指导下,发展出了面向过程编程方式.面向过程编程的核心是算法+数据结构.算法可以用顺序.选择.循环这三种基本控制结构来实现. ...

  3. 配置hive使用mysql存储metadata metadatastore

        hive默认使用derby数据库保存元数据,derby数据库比较小众,并且一次只能打开一个会话,一般修改为mysql数据库. 1.修改conf/hive-site.xml配置项: <pr ...

  4. ahjesus wp-autopost破解版,亲测可用

    在funtion.php里 把fetchUrl 这个函数的判断去掉 直接执行判断为真的结果下面是修改后的函数 function fetchUrl($_var_22){        global $w ...

  5. windows设置VMware开机启动并开启虚拟机

    1.建立开机脚本 新建start-vm.bat内容如下: "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" ...

  6. C#关于微信昵称中存在的表情图标乱码解决

    //在获取微信用户信息时加密保存到数据库 System.Web.HttpUtility.UrlEncode("需要加密的字段") //前端在展示是解码 <script typ ...

  7. Java简单的数据库连接

    package test.postgre; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Res ...

  8. JavaScript运行机制的学习

    今天在偶然在网上看到一个JavaScript的面试题,尝试着看了一下,很正常的就做错了,然后给我们前端做,哈哈,他居然也顺理成章做的错了,代码大概是这样的 /*1 下面代码会怎样执行?执行结果是什么* ...

  9. MySQL 5.7.24 privileges有哪些?

    root@localhost:3306.sock [mysql]>select version();+------------+| version()  |+------------+| 5.7 ...

  10. Python 系统学习梳理_【All】

    Python学习 1. Python学习---Python安装与基础1205 2. Python学习---PyCharm的使用学习 3. Python学习---Python数据类型1206 4. Py ...