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套接字
    不是网络协议,只能在一台服务器上实现。

最新文章

  1. 流量咪教你挖到5G免费流量
  2. Bootstrap~表单Form
  3. PHP 匹配一个汉字
  4. web项目引用Java项目,连接报错error HTTP Status 500 - Servlet execution threw an exception
  5. 【Gym 100971A】Treasure Island
  6. OGNL调用静态方法和属性
  7. Pogo-Cow
  8. oracle关于分区相关操作
  9. 云计算服务模型,第 2 部分: 平台即服务(PaaS)
  10. phpcms 调用全站最新发布数据
  11. vtp——vlan trunk protcal
  12. POI 操作Excel疑难点笔记
  13. solr6.6 导入索引数据
  14. Spring框架中获取连接池的几种方式
  15. wordpress中安装插件需要ftp服务
  16. HashSet, HashTable
  17. winform窗体 小程序【三级联动】
  18. (转)go语言nsq源码解读二 nsqlookupd、nsqd与nsqadmin
  19. ThinkPHP CURD mysql操作
  20. 【转载】Java 9 新特性——模块化

热门文章

  1. mysql 常用命令和笔记
  2. mysql之优化器、执行计划、简单优化
  3. pycharm 报错及解决方法
  4. DevOps,你真的了解吗?
  5. Mac 安装并破解热部署插件JRebel详细教程
  6. [head first 设计模式] 第一章 策略模式
  7. 网络拓扑实例之RRPP单环(五)
  8. 【mq读书笔记】mq索引文件刷盘
  9. PHP后台基本语法使用笔记
  10. web自动化-绕过登录