1.数据库和实例

数据库(database)和实例(instance)不能混淆。

什么是数据库

数据库是物理操作系统文件或其他文件类型的集合。说白了,就是存储着的文件,不会运行起来,只能被实例增删改查,用户不能脱离实例,直接操作。

什么是实例

实例是MySQL数据库由后台线程以及一个共享内存区组成。说白了,就是一个正在运行的进程,是用户和操作系统的一层数据管理软件,用户需要通过实例来操数据库。

二者关系

二者是一一对应的,但是在集群的情况下,可以多对多。

用户需要通过实例操作数据库。就像我们不能直接打开视频文件,需要一个视频解码播放软件来打开视频文件,才能直接讲视频播放出来。

2.MySQL体系结构


从图中可以看出,MySQL由以下几个部分构成:

  • 连接池组件
  • 管理服务和工具组件
  • SQL接口组件
  • 查询解析器组件
  • 优化器组件
  • 缓冲器组件
  • 插件式存储引擎
  • 物理文件

3.MySQL存储引擎

MySQL插件式存储引擎架构提供了标准的管理和服务支持,这些标准与存储引擎本身无关,而存储引擎是底层物理结构的实现。

需要注意的是,存储引擎是基于表的,而不是数据库。

使用存储引擎的好处

  • 每个存储引擎都有自己的特点,能够根据具体的应用建立不同存储引擎表。
  • 程序员可以自己根据业务特点对存储引擎进行改进。

存储引擎分类

  • InnoDB
    支持事务,设计的目标主要是面向在线事务处理的应用。其特点是行锁设计、支持外键,还有读操作不加锁/。从MySQL5.5.8开始,InnoDB是默认存储引擎。最常用。
  • MyISAM
    不支持事务、支持表锁,支持全文索引,主要面向一些OLAP(联机分析处理)数据库应用,也就是没有事务,主要是依赖系统磁盘吞吐量。只缓存索引文件,不缓冲数据文件。
  • NDB
    一种集群存储引擎,提供高可用性。全部数据放在内存中,因此主键查找速度极快。连接操作放在了数据库层实现,而不是存储引擎,所以,连接操作需要巨大的网络开销。
  • Memory
    顾名思义,将表的数据放在了内存中,如果断电了,数据都没了,所以,适合临时存储的数据。默认使用哈希索引。只支持表锁,并发性能差。
  • Maria
    用来取代MyISAM的,支持缓存数据和索引文件,添加了行锁设计,支持事务和非事务的选项,更高的字符型的处理性能。

连接MySQL的方式

  1. TCP/IP连接
    任何平台下都能提供,网络中使用最多,就是通过传输层建立的持续性连接。
  2. 命名管道
    windows平台专有的连接服务。
  3. 共享内存
  4. UNIX套接字
    不是网络协议,只能在一台服务器上实现。

MySQL技术内幕InnoDB存储引擎(一)——MySQL体系结构和存储引擎的更多相关文章

  1. mysql技术内幕InnoDB存储引擎-阅读笔记

    mysql技术内幕InnoDB存储引擎这本书断断续续看了近10天左右,应该说作者有比较丰富的开发水平,在源码级别上分析的比较透彻.如果结合高可用mysql和高性能mysql来看或许效果会更好,可惜书太 ...

  2. 《mysql技术内幕 InnoDB存储引擎(第二版)》阅读笔记

    一.mysql架构 mysql是一个单进程多线程架构的数据库. 二.存储引擎 InnoDB: 支持事务 行锁 读操作无锁 4种隔离级别,默认为repeatable 自适应hash索引 每张表的存储都是 ...

  3. Mysql技术内幕——InnoDB存储引擎

    Mysql技术内幕——InnoDB存储引擎 http://jingyan.baidu.com/article/fedf07377c493f35ac89770c.html 一.mysql体系结构和存储引 ...

  4. 《MySQL技术内幕 InnoDB存储引擎 》学习笔记

    第1章  MySQL体系结构和存储引擎 1.3 MySQL存储引擎 数据库和文件系统最大的区别在于:数据库是支持事务的 InnoDB存储引擎: MySQL5.5.8之后默认的存储引擎,主要面向OLTP ...

  5. 【Mysql技术内幕InnoDB存储引擎】读书笔记

    一.存储引擎 1.InnoDB引擎 设计目标是面向在线事务(OLTP)处理的应用. 支持事务.行级锁.通过多版本并发控制(MVCC)支持高并发.提供一致性非锁定读.next-key locking避免 ...

  6. MySQL技术内幕InnoDB存储引擎(三)——文件相关

    构成MySQL数据库和InnoDB存储引擎表的文件类型有: 参数文件:MySQL实例运行时需要的参数就是存储在这里. 日志文件:用来记录MySQL实例对某种条件做出响应时写入的文件. socket文件 ...

  7. (转)Mysql技术内幕InnoDB存储引擎-表&索引算法和锁

    表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...

  8. MySQL技术内幕InnoDB存储引擎(表&索引算法和锁)

    表 4.1.innodb存储引擎表类型 innodb表类似oracle的IOT表(索引聚集表-indexorganized table),在innodb表中每张表都会有一个主键,如果在创建表时没有显示 ...

  9. MySQL技术内幕InnoDB存储引擎(七)——事务

    什么是数据库的事务? 事务是访问并更新数据库中各种数据的一个程序执行单元.事务也是数据库区别于文件系统的一个重要特性. 事务需要满足的特性 1.原子性 原子性就是指数据库中的一个完整的事务是不可分割的 ...

随机推荐

  1. SpringBoot微服务框架

    springboot 是什么? 配置如何编写 yaml 自动装配原理 集成Web开发 集成数据库Druid 分布式开发:Dubbo(RPC)+zookeeper swagger:接口文档 任务调度 S ...

  2. sklearn.neighbors.NNeighborsClassifier 详细说明

    平时会用到sklearn.neighbors.NNeighborsClassifier函数来构建K最邻近分类器,所以这里对NNeighborsClassifier中的参数进行说明,文中参考的是scik ...

  3. setPriority()优先级

    1 . 优先级表示重要程度或者紧急程度.但是能不能抢到资源也是不一定.2 . 分配优先级:反映线程的重要或紧急程度线程的优先级用1-10 表示,1的优先级最低,10的优先级最高,默认值是5 packa ...

  4. css子选择器 :frist-child :nth-child(n) :nth-of-type(n) ::select选择器

    记录一下前一段时间使用.学习的几种选择器. 1. :frist-child 选择器n 比如<ul><li></li> <li></li> & ...

  5. 背包问题(动态规划 C/C++)

    Description 卖方:这件商品14元 买方:给你20元 卖方:不好意思,我的零钱不够 买方:好吧,这是15元,剩的当小费 当到一个地方旅游时,如果你买东西的地方不支持信用,带零钱还是非常有用的 ...

  6. 14.java设计模式之命令模式

    基本需求: 一套智能家电,有照明灯.风扇.冰箱.洗衣机,我们只要在手机上安装app就可以控制对这些家电工作 这些智能家电来自不同的厂家,我们不想针对每一种家电都安装一个App分别控制,我们希望只要一个 ...

  7. php-fpm和nginx配置

    groupadd www-data useradd -g www-data www-data find / -name "php-fpm.conf" 把所有文件下的 改成www-d ...

  8. DNS系列—DNS简介

    DNS是什么? 如果了解互联网主机之间是用IP地址来进行通信的话,有了这个认识的前提,我们来聊一下什么是DNS.一个IP地址有十几个字符那么长,和手机号码长度差不多,我们怎么记住这些我们想要访问的主机 ...

  9. yii2.0 关于 ActiveForm 中 checkboxList 的使用

    在视图中创建复选框,列出复选框内的内容其中$id 为 列出在复选框中的数组 //$ids:所有要显示的checkbox(Array)<?=$form->field($model, 'id' ...

  10. VMware与Device/Credential Guard不兼容问题

    启动虚拟机vmware突然报不兼容错误 解决方法: 1首先打开控制面板>程序>启动或关闭Windows功能, 取消Hyper-v的勾选 2.在往下划,关闭Windows沙盒的勾选沙盒和虚拟 ...