MySQL学习笔记一之基础架构
MySQL学习笔记一之架构@TOC
架构图如下
Server层
连接器
- 负责跟客户端建立连接、获取权限、维持和管理连接
- 客户端如果太长时间没有动静,连接器会将其自动断开,时间由参数wait_timeout控制,默认值八小时
- 长连接是指连接成功后,如果客户端持续有请求,则一直使用同一个连接
- 使用长连接后内存会涨的特别快,因为mysql执行过程中临时使用的内存是管理在连接对象里的,这些资源会在连接断开的时候才释放
- 解决方案:
- 定期断开长连接
- 5.7以上的版本,可以在每次执行一个比较大的操作之后通过执行mysql_reset_connection来重新初始化资源,该过程不需要重新连接和做权限验证,但是会把连接回复到刚刚创建完的状态
- 解决方案:
- 使用长连接后内存会涨的特别快,因为mysql执行过程中临时使用的内存是管理在连接对象里的,这些资源会在连接断开的时候才释放
- 短连接是指每次执行完很少的几次查询以后就断开连接,下次查询重新建立一个。
查询缓存
- 拿到查询请求后,会先到查询缓存中看是否命中,命中的话直接返回。之前执行过的语句会以key-value的形式直接缓存在内存中,key是查询的语句,value是查询的结果
- mysql默认按需使用的方式开启功能
- 该功能弊大于利:失效频繁
- 只要有对一个表的更新,这个表上的所有的查询缓存都会被清空
- 8.0版本删除了这个功能
分析器
- 词法分析:识别出字符串是什么
- 语法分析:根据语法规则判断sql语句是否合法
执行器
- 执行前,会先判断你对这个表有没有查询权限
- 数据库的慢查询日志中看到一个rows_examined字段,表示这个语句执行过程中扫描了多少行。
- 引擎扫面行数跟rows_examined并不是完全相同。
存储引擎层
官方存储引擎
第三方存储引擎
连接方式
- TCP/IP套接字方式。建立基于网络的连接请求
- 命名管道和共享内存。在同一台服务器
- unix套接字。[mysql -udavid -S /tmp/mysql.sock]
MySQL学习笔记一之基础架构相关推荐
- MySQL学习笔记-恶补基础篇
目录 概述 1.初识数据库 1.1.DataBase 1.2.数据库分类 1.3.DBMS(数据库管理系统) 1.4.命令行操作数据库 2.操作数据库 2.1.操作数据库 2.2.数据库列类型 2.3 ...
- OceanBase 从0到1数据库内核实战教程学习笔记 - 3.OceanBase基础架构和开发技巧
这篇文章主要介绍王泽林老师分享的 <OceanBase 的基础架构和开发技巧>.如果您看过第一篇文章的对应视频,会发现整个系列主要分为 MiniOB 和 OceanBase 两个系列,本篇 ...
- MySQL学习笔记_8_SQL语言基础复习
SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...
- MySQL学习笔记-第一篇-基础知识与命令
目录 1 登录命令 1.1 主机域名登录 1.2 主机ip登录 2 库命令 2.1 显示库 2.2 创建数据库 2.3 删除数据库 2.4 MySQL-8.新特性 3 表命令 3.1 创建数据表 3. ...
- MySQL学习笔记-基础篇2
MySQL学习笔记-基础篇2 目录 MySQL学习笔记-基础篇2 8.子查询 8.1 需求分析与问题解决 8.1.1 实际问题 8.1.2 子查询的基本使用 8.1.3 子查询的分类 8.2 单行子查 ...
- MySQL学习笔记-基础篇1
MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...
- JavaEE 企业级分布式高级架构师(六)MySQL学习笔记(6)
MySQL学习笔记 性能优化篇 性能优化的思路 慢查询日志 慢查询日志介绍 开启慢查询功能 演示一 演示二 分析慢查询日志 MySQL自带的mysqldumpslow 使用percona-toolki ...
- MySQL学习笔记——尚硅谷李玉婷经典版MySQL基础笔记(一)
MySQL学习笔记--尚硅谷李玉婷经典版MySQL基础笔记(一) MySQL学习笔记目录 MySQL学习笔记--尚硅谷李玉婷经典版MySQL基础笔记(一) 一.基础知识 1.MySQL的语法规范 2. ...
- Mysql学习笔记(基础)基础sql语句详细记录
数据库学习(基础) // 个人网课学习记录,如果有违规等问题,请联系我删除~ mysql下载安装( 解压版安装配置 下载版安装配置 ) 需求分析:使用cmd命令来创建一个数据库,并对数据库中得一张分类 ...
最新文章
- SLAM-ch2-cmake中使用库
- hdu 1874畅通工程续(基础Floyd)
- java五子棋源代码_java 五子棋游戏源码
- C++学习之路 | PTA乙级—— 1051 复数乘法 (15 分)(精简)
- mysql 插入数据后返回当前的自增ID方法
- TP5实践小总结(1)
- 秋招准备之——计算机操作系统
- PS流的格式和解析总结
- wpa_supplicant wps手册的翻译
- Java常用框架介绍
- Android 编辑 mhtml,Html Editor下载-Html Editor(Html编辑器)下载v1.0 安卓版-西西软件下载...
- 计算机总是蓝屏怎么解决办法,电脑经常蓝屏怎么办?教你解决几种常见的蓝屏问题...
- 设计思维(Design Thinking)
- 学校的计算机教室火灾级别,校园火灾事故案例统计基本数据表.doc
- 世界标准时间(UTC) 常识
- 微信 openid = hash(uid + app_id) 也就是说,对每个app可以做到用户id唯一
- python处理金融数据_Python金融大数据分析-数据获取与简单处理
- OpenSSL 把cer证书链以及key文件生成keystore,tomcat https配置
- 有关 ovirt 的分析
- App Icon Gear App 图标制作工具