近期一直在忙项目,各种加班加点,项目上线。渐渐的没有了学习的时间。这不,刚这几天才干抽出点时间。忙里偷闲,正在看一本数据库的书籍。相信非常多小伙伴们也都看过 — — 《MySQL 技术内幕:InnoDB 存储引擎》。这本书非常具体的讲述了 MySQL 的设计思想,体系结构。存储引擎。索引,事务。以及对性能的调优等。当然,如今我也是刚刚看了一部分。至于如今写这篇文章,主要是为了记录一下我的学习历程,而且和大家分享一些新的东西。


背景


至于背景嘛,这里就不多说了。假设感兴趣的话。还是推荐大家看一看这本书的。那么如今嘛,先了解一下 MySQL 的体系结构也不错,没准还能够拿出来炫耀一下(纯属忽悠)。


概念


在说体系结构之前,先说两个名词,并且是在数据库领域里非经常见的两个词:“数据库”和“数据库实例”。


我想,小伙伴们肯定都知道这两个名词的,并且有时候还常常会区分不出来。那么。什么是“数据库”?什么又是“数据库实例”呢?以下我就具体跟大家说说。

首先说“数据库”,数据库是物理操作系统文件或其它形式的文件类型的集合。

在 MySQL 中。数据库文件能够是 frm、myd、myi、ibd 结尾的文件。


然后说“数据库实例”,数据库实例是由数据库后台进程/线程以及一个共享内存区组成。共享内存能够被执行的后台进程/线程所共享。须要注意的是。数据库实例才是真正用来操作数据库文件的。

这两个词有时能够互换使用,但两者的概念全然不同。在 MySQL 中。实例和数据库通常关系是一 一相应的,即一个实例相应一个数据库,一个数据库相应一个实例。可是,在集群情况下,可能存在一个数据库可被多个实例使用的情况。


体系结构


MySQL 是一个可移植的数据库,差点儿能在当前全部的操作系统上执行,如 Unix/Linux、Windows、Mac 和 Solaris。

各种系统在底层实现方面各有不同,可是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。




MySQL 由下面几部分组成:

  • Connectors:不同语言中与 SQL 的交互

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


max_connections:就是整个MySQL实例的最大连接数限制
         
max_user_connections:是单个用户的最大连接数,这里未指明是哪个用户,是随意一个用户。

  • Management Serveices & Utilities:系统管理和控制工具

备份和恢复的安全性,复制。集群。管理,配置,迁移和元数据。

  • Connection Pool:连接池

进行身份验证、线程重用。连接限制,检查内存,数据缓存;管理用户的连接,线程处理等须要缓存的需求。

  • SQL Interface:SQL 接口

进行 DML、DDL,存储过程、视图、触发器等操作和管理。用户通过 SQL 命令来查询所需结果。

  • Parser:解析器

查询翻译对象的特权;SQL 命令传递到解析器的时候会被解析器验证和解析。


  • Optimizer:查询优化器

訪问路径的统计数据;



在 MySQL 优化语句过程中,能够通过设置 optimize_switch 控制优化行为。

在生产环境上。某时间段 MySQL server压力特别大,load 一度达到了 100,查询发现数据库中有大量的 sql 语句 state 状态 result sorting ,result sorting 这样的排序特别消耗 cpu 和内存资源。抽取当中的一条 sql 查看运行计划。


  • Cache 和 Buffer:查询缓存

全局和引擎特定的缓存和缓冲区;



  • Engine:存储引擎

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


MySQL 的 Windows 版本号默认存储引擎为 InnoDB,InnoDB 支持事务,而且提供行级的锁定。



结束语


想要认识 MySQL,这里不过个開始。在兴许的学习中,我还会不定时的跟大家分享,同一时候。小伙伴们有新的想法也能够跟我一块交流交流。



带你认识 MySQL 之 MySQL 体系结构的更多相关文章

  1. Zabbix Server 自带模板监控更加灵活MySQL数据库

    Zabbix Server 自带模板监控更加灵活MySQL数据库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.zabbix-agent端配置 1>.修改zabbix的 ...

  2. Zabbix Server 自带模板监控有密码MySQL数据库

    Zabbix Server 自带模板监控有密码MySQL数据库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.Zabbix-agent端的配置 1>.为数据库设置密码 ...

  3. 封装带SSH跳板机的MYSQL

    一.封装带SSH跳板机的MYSQL 二.配置settting import pymysql from sshtunnel import SSHTunnelForwarder class MyDb(ob ...

  4. 数据库MySQL(带你零基础入门MySQL)

    (一)认识数据库 redis默认端口:6379 mysql默认端口:3306 什么是数据库? 数据库的英文单词:data base,简称DB. 数据库实际上就是一个文件集合,是一个存储数据的仓库,本质 ...

  5. 【MySQL】MySQL(四)存储引擎、索引、锁、集群

    MySQL存储引擎 MySQL体系结构 体系结构的概念 任何一套系统当中,每个部件都能起到一定的作用! MySQL的体系结构 体系结构详解 客户端连接 支持接口:支持的客户端连接,例如C.Java.P ...

  6. MySQL Cluster(MySQL 集群) 初试(转)

    作/译者:叶金荣(imysql#imysql.com>),来源:http://imysql.com,欢迎转载. 作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请 ...

  7. 【MySQL】MySQL无基础学习和入门之一:数据库基础概述和实验环境搭建

    数据库基础概述  大部分互联网公司都选择MySQL作为业务数据存储数据库,除了MySQL目前还有很多公司使用Oracle(甲骨文).SQLserver(微软).MongoDB等. 从使用成本来区分可以 ...

  8. 如何在Windows系统中配置Mysql群集(Mysql Cluster)

    Mysql群集(Cluster)简介 MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的.MySQL群集中有三种节点:管理节点.数据节点和SQL节点.群集中的某计算机可 能是某一种节点,也 ...

  9. MySQL:MySQL的基本操作

    1.数据库登录 格式:mysql -h主机地址 -u用户名 -p用户密码 -P端口 -D数据库 -e “SQL内容” [root@wulaoer ~]# mysql -uroot -p  2.修改密码 ...

  10. MySQL:MySQL的安装

    一.Linux:MySQL的源码安装 1.安装前的准备 在安装之前需要安装一下必备的包和工具 gcc/g++:MySQL5.6开始,需要使用g++进行编译. cmake:MySQL5.5开始,使用cm ...

随机推荐

  1. DirectX11 学习笔记10 - 用文件存储顶点布局

    这节须要把顶点布局写在文件中面,为了方便.由于一大串很抽象的坐标放在CPP和程序混在一起很的不方便. 以下全为c++知识,读取文件中面的特定格式的数据: Vertex Count: 36 Data: ...

  2. js代码从页面移植到文件里失效或js代码改动后不起作用的解决的方法

    近期在做关于站点的项目,总是发生这种问题 写的javascript代码在页面上没有问题,可是将js代码移植到.js的文件里,在页面上进行调用,总是出现失效等错误 另外改动后的js代码,又一次刷新网页仍 ...

  3. 使用Android design support library在Eclipse和Android Studio

    背景:为了在低版本号下使用Android 5.0的一些新特新 Eclipse篇: 1.将Android Manager中的Android support library升级到最新,我的为22.2.1' ...

  4. js+ canvas 实现人物走动

    在网上看了一篇管道工玛利亚走动的图片,感觉人物走动的太生涩了,就写了一下代码改动一下: js 代码: //定义数组图片集合 var marios = new Array("image/QQ截 ...

  5. Apache Kylin高级部分之使用Hive视图

    本章节我们将介绍为什么须要在Kylin创建Cube过程中使用Hive视图.而假设使用Hive视图.能够带来什么优点.解决什么样的问题.以及须要学会怎样使用视图.使用视图有什么限制等等. 1.      ...

  6. 淘宝druid报错:javax.management.InstanceNotFoundException: com.alibaba.druid:type=DruidDataSourceStat

    问题: 启动tomcat报错: Tomat报出一下异常:ERROR [com.alibaba.druid.stat.DruidDataSourceStatManager] – unregister m ...

  7. vue项目中遇到的打印,以及处理重新排版后不显示echarts图片问题。

    1. 项目中用到的打印 页面: css: 控制好宽度一般A4 我调试的是794px多了放不下,小了填不满.当时多页打印的时候,一定要控制好每一个页面内容显示的高度不要超过一个页面,当然根据自己项目来. ...

  8. Core Java(三)

    三.运算符&流程控制 运算符---http://blog.csdn.net/typa01_kk/article/details/45000535 在一个程序执行的过程中,各条语句的执行顺序对程 ...

  9. Android 给WebView设置Cookie

    最近项目中用到WebView访问新浪支付页面,有个要求是必须是登录状态,否则会报Token过期,然后我简单的将我从cookie中取得的ticket,即一串数字可以代表用户登录的唯一标识作为参数拼接到u ...

  10. AVL树,红黑树,B树,B+树,Trie树都分别应用在哪些现实场景中?

    AVL树: 最早的平衡二叉树之一.应用相对其他数据结构比较少.windows对进程地址空间的管理用到了AVL树. 红黑树: 平衡二叉树,广泛用在C++的STL中.如map和set都是用红黑树实现的. ...