MYSQL被设计为一个可移植的数据库,几乎能在当前所有的操作系统上运行,如linux、windows、Solaris、FreeBSD、Mac。尽管在各种操作系统的底层(如线程)实现方面各不相同,但是MYSQL几乎能保证在各平台上的物理体系结构的一致性。
-
定义数据库和实例
在数据库领域中有两个词很容易混淆,那就是 “实例” 和 “数据库”。
数据库:物理操作系统文件或其他形式文件类型的集合。在MYSQL中,数据库文件可以是frm、myd、myi、ibd结尾的文件。当使用NDB引擎时,数据库的文件可能不是操作系统上的文件,而是存放在内存之中的文件,但是定义仍然不变。
数据库实例:由数据库后台进程/线程以及一个共享内存区组成。共享内存可以被运行的后台进程/线程所共享。需要牢记的是,数据库实例才是真正用来操作数据文件的。
通常一个实例对应一个数据库,一个数据库对应一个实例。但是,在集群情况下可能存在一个数据库可被多个实例使用的情况。
MYSQL被设计为一个单进程多线程架构的数据库。
在linux操作系统中启动MYSQL数据库实例
./mysqld_safe &
ps -ef|grep mysqld
-
MYSQL组成
- 连接池组件
- 管理服务和工具组件
- SQL接口组件
- 查询分析器组件
- 优化器组件
- 缓冲组件
- 插件式存储引擎
- 物理文件
存储引擎是基于表的,而不是数据库。