MySQL学习【第四篇mysql体系结构管理】
一.客户端与服务端模型
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体系结构管理】的更多相关文章
- 我的MYSQL学习心得(十三) 权限管理
我的MYSQL学习心得(十三) 权限管理 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) ...
- 数据库MySQL学习笔记高级篇
数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...
- MySql学习笔记四
MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...
- openresty 学习笔记四:连接mysql和进行相关操作
openresty 学习笔记四:连接mysql和进行相关操作 毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库.比如首次查询数据在red ...
- “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现)
“MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现) 一.前三篇的内容是否对您有帮助呢?如果有的话,请您继续关注这篇吧,这篇主要是实现”用户管理“的 ...
- MySQL学习(一)——Java连接MySql数据库
MySQL学习(一)——Java连接MySql数据库 API详解: 获得语句执行 String sql = "Insert into category(cid, cname) values( ...
- MySQL学习笔记Windows篇<一> Welcome to MySQL
MySQL安装完毕后没有图形化操作界面,图形化管理界面需要另行安装,个人比较喜欢Navicat,界面更像SQLserver: 此篇学习笔记所有操作均使用命令行中完成: 1.开启/停止服务 使用MySQ ...
- MySQL学习【第二篇安装】
一.Mysql安装方式 1.安装方式 1.rpm,yum安装 安装方便,安装速度快,但无法定制 2.二进制安装 不需要安装,解压即用,不能定制功能 3.编译安装 可定制,安装很慢,安装分为四个步骤 1 ...
- MySQL学习【第九篇存储引擎】
一.存储引擎介绍 1.我们知道mysql程序构成由连接层,sql层,存储引擎层.存储引擎层和磁盘进行交互,由其去取数据,而我们取得数据是表的形式展现出来,谁做的呢?就是存储引擎结构化成表的形式返回给用 ...
随机推荐
- 这几个Xocode插件用过一段时间还比较稳定好用,Xcode6兼容,推荐给大家:
这几个Xocode插件用过一段时间还比较稳定好用,Xcode6兼容,推荐给大家: AdjustFontSize: 快捷调整Xcode字体,https://github.com/zats/AdjustF ...
- CVE-2017-17215 - 华为HG532命令注入漏洞分析
前言 前面几天国外有个公司发布了该漏洞的详情.入手的二手 hg532 到货了,分析测试一下. 固件地址:https://ia601506.us.archive.org/22/items/RouterH ...
- js原生实现轮播
前两天同事面试新人,让现场写”轮播的实现”.我一想这玩意貌似我也没写过啊,就在旁边暗搓搓地拖了一张纸也在那写,同事都纳闷了! 这玩意实现方法有很多种,就看喜欢那种,喜欢怎么写而已.我这里是通过对img ...
- PHP获取用户的真实IP地址
本文出至:新太潮流网络博客 PHP获取用户的真实IP地址,非代理IP function getClientIP(){ global $ip; if(getenv("HTTP_CLIENT_I ...
- 如何让你的Ssh连接,更加安全?
希望你会涨姿势. First: vim /etc/ssh/sshd_config 在Port 22下面加一行,以端口1438为例,Port 1438 然后保存,重启ssh服务 systemctl re ...
- Mysql ibdata1简述
What is stored in ibdata1? 当启用innodb_file_per_table时,表存储在它们自己的表空间中,但共享表空间仍用于存储其他InnoDB的内部数据: 数据字典也就是 ...
- VC++下使用ADO操作数据库
VC++下使用ADO操作数据库主要要用到 _ConnectionPtr,_CommandPtr,_RecordsetPtr三个ADO对象指针,我查找了相关资料,发现网上源码很多,但是都相对凌乱,于是自 ...
- Docker 报错 error during connect: Get pipe/docker_engine: The system cannot find the file specified. - 摘要: 本文讲的是Docker 报错 error during connect: Get pipe/dock
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.37/version: open //./pipe/docker_ ...
- spider-抓取页面内容
# -*- coding: UTF-8 -*- from HTMLParser import HTMLParser import sys,urllib2,string,re,json reload(s ...
- cxfreeze打包python程序的方法说明(生成安装包,实现桌面快捷方式、删除快捷方式)
一.cxfreeze基础 1.cxfreeze功能 python代码文件转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller,这三种方式各有千秋,本人只用过py2exe和 ...