MYSQL体系结构-来自期刊
MySQL三层体系结构|-----------------------------------------------------------------------------------|
|                                  mysqld-SQL层                                     |
|-----------------------------------------------------------------------------------|
|                              mysqld-表引擎适配层                                    |
-------------------------------------------------------------------------------------|                        |                 |            |        |        |----------------       -----------  -------------    ------------       |    --------------| innoDB表引擎 |        |BDB表引擎|     MERGE表引擎|    |HEAP表引擎|        |    |MYISAM表引擎 |----------------       -----------  -------------    —-----------       |    |-------------|------------|ISAM表引擎|------------
SQL层主要完成SQL语句的词法分析,语法分析,权限检查等工作,
表适配器层根据用户SQL语句上下文,选择并激活用户当前操作的表引擎,执行具体的语句操作.
用户可用通过配置文件设定默认表引擎,default_table_type=HEAP一条SQL语句的执行过程
1:用户通过客户端向SQL服务器发送SQL语句
2:服务器对应于用户的工作线程(执行数据库连接时建立)接收该SQL语句
3:工作线程执行SQL层权限检查
4:工作线程执行SQL层SQL语句解析
5:工作线程执行SQL层必要的优化工作
6:在3,4,5步发生错误时,SQL层层构造相应的错误信息,由工作线程返回客户端
7:工作线程执行完成SQL层操作后,激活表引擎适配层,选择对应的引擎.
8:工作线程在被选择表引擎上执行,并在相应表引擎系统线程的配合下,完成具体的语句操作
9:工作线程根据表引擎执行情况,给客户端返回结果InnoDB表引擎的配置
1:旁路配置当MySQL服务器本身支持InnoDB,但管理员不打算使用InnoDB时使用该配置,这样即使数据库用户指定创建InnoDB表类型,服务器也不予支持.可以节省内存以及磁盘空间,并可加快某些语句的执行(MYISAM和InnoDB表的区别)
2:线程配置2.1:并发线程数(innodb_thread_concurrency)用于指定InnoDB引擎内允许同时并发的线程数量,当多个用户同时连接到服务器并使用InnoDB引擎时,将可能出现多个用户工作线程进入InnnoDB表引擎.同时处于InnoDB层的用户工作线程越多,系统并发性越高,同时线程之间的互斥冲突可能越多,当达到一定量的时候,系统性能急剧下降,根据实际情况配置.2.2:最长锁等待时间(innodb_lock_wait_timeout)该配置项指定用户工作线程等待一个锁的最长时间,当一个InnoDb事务等待某个锁的时间超过该值时,InnoDB将自动回滚该事务.这对于打破InnoDB可能发生的死锁相当重要,特别是执行Lock Tables命令时,InnoDB将无法控制这来自外部的锁.这就可能导致用户直接锁与InnoDB内部执行过程的加锁发生死锁.该配置以秒单位,值过小,未发生死锁的事务频繁回滚,过大,死锁时间过长,影响InnoDB的有效执行效率.2.3:I/O线程数(innodb_file_io_threads)为了提高速度,InnoDB首先将数据读入内存缓存区,然后再写入磁盘,当读取数据时,InnoDB批量读入数据到缓冲区,方便后期查找.这样就产生了内存缓冲区和磁盘之间的读写问题,InnoDB设置了专门的I/O线程来完成磁盘于内存缓冲区之间的读写操作.
3:缓存管理配置3.1:缓冲池大小(innodb_buffer_pool_size)该配置项用于指定InnoDB所用缓冲池的大小.该缓冲池用户存储InnoDB表索引和表中数据,以缓存磁盘I/O速度.缓冲池越大,缓冲到内存中的索引和数据越多,其他进程能用的内存就越小.此外,配置越大,数据丢失的风险越大(宕机时缓存区中的数据尚未刷新到磁盘,永久性丢失).3.2:元数据缓冲池大小(innodb_additional_mem_pool_size)innodb_buffer_pool_size指定的缓冲池用于缓存表索引和表数据,该配置指定缓冲池中用于存放表定义信息等元数据,该配置为一初始化配置,若InnoDB存放元数据大小超过该配置,自动向操作系统申请.3.3:日志缓冲区大小(innodb_log_buffer_size)当事务执行过程中,InnoDB会不断产生日志,以提供数据恢复功能.当InnoDB生成日志时,首先将日志写入缓冲区,然后再刷新到磁盘.该配置用于指定日志缓冲区大小.过小,将使InnoDB频繁刷新日志到磁盘,同时难以支持长事务.过大浪费内存,同时延长刷新时间,增加日志丢失风险.

posted on 2017-09-16 01:18 好吧,就是菜菜 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/shuiyonglewodezzzzz/p/7529342.html

MYSQL体系结构-来自期刊相关推荐

  1. mysql客户端工具_性能优化-理解 MySQL 体系结构(MySQL分库分表)

    实例和数据库 我们通常所说的 MySQL 数据库服务器由一个实例(instance)以及一个数据库(database)组成.实例包括一组后台进程/线程和许多内存结构,用于管理数据库:数据库由一组磁盘文 ...

  2. MySQL体系结构及基础管理(二)

    文章目录 1. MySQL体系结构 1.1 MySQL客户端/服务端工作模式(c/s) 1.2 服务器端-实例 1.3 mysqld程序结构 1.4 MySQL逻辑结构 1.5 MySQL物理存储结构 ...

  3. mysql体系结构:

    mysql体系结构:     由:连接池组件.管理服务和工具组件.sql接口组件.查询分析器组件.优化器组件.                 缓冲组件.插件式存储引擎.物理文件组成.     mys ...

  4. MySQL体系结构和存储引擎概述

    一.定义数据库和实例 数据库: 物理操作系统文件或其他形式文件类型的集合.数据库文件可以是frm.MYD.ibd 结尾的文件. 从概念上来说,数据库是文件的集合,是依照某种数据模型组织起来并存放于二级 ...

  5. MySql基础入门-mysql体系结构

    mysql体系结构:      由:连接池组件.管理服务和工具组件.sql接口组件.查询分析器组件.优化器组件.                 缓冲组件.插件式存储引擎.物理文件组成.      m ...

  6. MySQL - 体系结构初探

    文章目录 生猛干货 数据库 MySQL 主流分支 MySQL 数据库的体系结构 Client Connectors 层 MySQL Server 层 插件式的存储引擎层 一条SQL的执行过程 鸡肋的查 ...

  7. MySQL技术内幕读书笔记(一)——Mysql体系结构和存储引擎

    目录 MySQL体系结构和存储引擎 定义数据库和实例 MYSQL体系结构 MYSQL存储引擎 MySQL体系结构和存储引擎 定义数据库和实例 数据库:物理操作系统文件或者其他形式文件类型的结合.在MY ...

  8. mysql体系结构和存储引擎

    转自: mysql技术内幕:innodb存储引擎(非常棒的一本书) [1]mysql体系结构和存储引擎 [1.2]mysql体系结构 1)mysql数据库实例在系统上的表现就是一个进程: 2)数据库与 ...

  9. mysql n 存储结构,MySQL体系结构和存储引擎概述

    一.定义数据库和实例 数据库: 物理操作系统文件或其他形式文件类型的集合.数据库文件可以是frm.MYD.ibd 结尾的文件. 从概念上来说,数据库是文件的集合,是依照某种数据模型组织起来并存放于二级 ...

最新文章

  1. 深挖谷歌 DeepMind 和它背后的技术
  2. 微信公众号开发Django-网页授权
  3. 【经验心得】CS1.6:经典中的精品
  4. php中mysql和mysqli_PHP中mysql和mysqli的区别
  5. hdu 2612 Find a way (广搜)
  6. arcgis for android sdk下载地址,Arcgis Runtime sdk for android 授权
  7. oracle+技术面试,Oracle技术面试问题
  8. 老是原罪?技术圈为何不待见大龄企业家
  9. python与excel-Python与Excel之间的交互
  10. 声艺fx16调音台怎么样_声艺调音台FX16II使用说明书.doc
  11. 老码识途——1.1反汇编机器码入门
  12. jquery html 兼容ie8,IE浏览器 对 jquery版本的兼容性 支持
  13. ubuntu20.04装机教程
  14. 你的成就只能代表着你过去的努力程度
  15. WordPress安装教程(详细)
  16. aid learning安装应用_aid learning安装python
  17. 玄武中专计算机动漫与游戏制作,正青春,不散场——玄武中专信息技术系举办2016级计算机动漫与游戏制作专业“3+3”学生毕业作品展开幕式...
  18. 物联网专业并不好_在广阔的物联网中,“智能”仍然并不意味着安全
  19. QTcreater学习笔记
  20. 分享111个ASP源码,总有一款适合您

热门文章

  1. 从Qcheck 1.3 不能在不同操作系统上运行问题(chro124、chro342)说开来------
  2. Oracle Spatial构建自定义投影坐标系
  3. SQL Date 函数
  4. Automatically highlight current page in menu via Javascript
  5. SVO(SVO: fast semi-direct monocular visual odometry)
  6. mysql常用语句集锦
  7. Facebook的实时Hadoop系统
  8. 何时使用margin和padding?
  9. X@X.X域名转向的实现
  10. 程序员的自我修养--链接、装载与库笔记:Linux共享库的组织