定义数据库以及实例
数据库:物理操作系统文件或其他形式文件类型的合集。在NDB引擎时候,数据库文件可能不是操作系统上的文件,而是存放在内存之中的文件,但是定义是不变的。
实例:Mysql数据库由一个后台线程以及一个共享内存区组成。共享内存可以被运行的后台线程锁共享。数据库实例才是真正用于操作数据库文件的。
mysql中的实例和数据库是保持一一对应的关系,即一个实例对应一个数据库,但是集群中可能存在一个数据库被多个实例使用的情况。
mysql的连接
TCP/IP套接字方式是Mysql数据库在任何平台下都提供的连接方式。
mysql的配置文件读取
mysql的配置文件由很多,后缀名为.cnf,如果多个配置都有一个参数的话,那么以最后一个读取到的配置文件为准。
mysql的组成
- 连接池组件
- 管理服务和工具组件
- SQL接口组件
- 查询分析器组件
- 优化器组件
- 缓冲组件
- 插件式存储引擎
- 物理文件
Mysql的存储引擎
Mysql独有的插件式存储引擎是Mysql区别于其他数据库的最重要的特性。存储引擎的好处是每个引擎有不同的特点,能根据不同的具体应用建立不同的存储引擎表。
名称 | 特点 |
InnoDB | 设计目标是面向在线事物(OLTP:联机事物处理。)处理的应用,支持行锁,支持外键,并支持非锁定读,不支持全文索引。(5.5.8之后的默认引擎) |
MyISAM | 不支持事物,表锁设计,支持全文索引。 |
NDB | 是一个集群引擎,NDB的连接操作是在Mysql数据库层完成,不是在存储引擎层实现,这意味着需要很大网络开销进行连接。 |
Memory | Memory引擎将表中的数据存放在内存中,如果数据库重启,数据将消失,适合存储临时表以及数据库中的纬度表,Memory存储引擎默认使用哈希索引,而不是B+Tree索引 |
Archive | 只支持Select和Insert操作,使用zlib算法进行压缩存储。适合存储归档数据,如日志信息等。 |
Federated | 不是存放数据的引擎,是指向一台远程Mysql数据库服务器上的表,只支持Mysql数据库表之间的只想,不支持异数据库表。 |
Maria | 为了取代MyISAM引擎而开发的引擎。特点是支持缓存数据以及索引文件。应用了行锁设计,支持了事物。 |
其他引擎 | Merge、CSV、Sphinx、Infobright |