第一章 MySQL体系结构和存储引擎

1.1 数据库和实例的区别

数据库:物理操作系统文件和其他形式文件类型的集合。
实    例:MySQL数据库由后台线程以及一个共享的内存区组成。共
享内存可以被运行的后台线程所共享,MySQL数据库实例在系统上表现就是一个进程。
从概念上来说,数据库是文件的集合,依照某种数据模型组织起来并存放于二级存储器的数据集合。数据库实例是程序,是位于用户与操作系统之间的一层数据管理软件,用户对数据库数据的任何操作都是在数据库实例下去进行的。应用程序只有通过数据库实例才能和数据库打交道。

启动实例时,MySQL数据库会去读取配置文件,如果没有配置文件,MySQL数据库会按照编译时的默认参数设置启动实例。可以使用mysql --help|grep my.cnf查看MySQL数据库会查找哪些配置文件,文件的顺序越后,优先级越高

MySQL 系统架构.png

从上图可以看出MySQL的存储引擎是插件式的。特别注意,存储引擎是基于表的,而不是数据库的

1.2 MySQL的存储引擎种类
MySQL存储引擎种类.png

InnoDB:支持事务,主要面向在线事务处理(OTLP)的应用,行锁设计,支持外键,并支持类似Oracle的非锁定读,即默认读取操作不会产生锁。从MySQL数据库5.5.8开始,InnoDB存储引擎是默认的存储引擎。InnoDB引擎实现了SQL标准的4种隔离级别,默认为REPEATABLE级别。

MyISAM:不支持事务,表锁设计,支持全文索引,只要面向写OLAP数据库应用。在MySQL5.5.8之前,MyISAM是MySQL默认的存储引擎(除Window版本外)。MyISAM引擎的缓冲池只缓存索引文件,而不缓存数据文件

1.3 连接MySQL的方式

连接MySQL操作是一个连接进程和MySQL数据库实例进行通信

  • TCP/IP     mysql -h ip -u username -p  在通过TCP/IP连接到数据库实例的时候,MySQL会检查user表的权限来判断该客户端IP是否能连接到MySQL实例
  • 命名管道和共享内存
  • UNIX域套接字

你可能感兴趣的:(第一章 MySQL体系结构和存储引擎)