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

数据库的概念:

数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器的数据集合

1.2 MySQL体系结构

MySQL组成部分

  • 连接池组件

  • 管理服务和工具组件

  • SQL接口组件

  • 查询分析器组件

  • 优化器组件

  • 缓冲组件

  • 插件式存储引擎

  • 物理文件

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

1.3MySQL存储引擎

存储引擎的好处 每个存储引擎都有各自的特点,能够根据具体的应用建立不同的存储引擎表。

1.3.1InnoDB存储引擎

支持事务,设计目标主要面向在线事务处理(OLTP)的应用。特点是行锁设计,支持外键,并支持类似于Oracle的非锁定读,即默认操作不会产生锁。从MySQL5.5.8开始,默认InnoDB存储引擎。

InnoDB通过使用多版本并发控制(MVCC)来获得高并发性,并实现了SQL的标准的4种隔离级别。

InnoDB采用聚集的方式存储数据,表的存储都是按主键的顺序存放。如果没有显示地在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键。

1.3.2MyISAM存储引擎

MyISAM不支持事务、表锁设计,支持全文索引,主要面向一些OLAP数据库应用。MySQL5.5.8之前默认时MyISAM。MyISAM缓存池只缓存索引文件,而不缓存数据文件,这和大多数数据库不同。

在MySQL5.0之前,MyISAM默认支持表大小是4GB,需要大于此的表时,则需要制定MAX_ROW和AVG_ROW_LENGTH属性。从MySQL5.0开始,MyISAM默认支持256TB的表单数据。

1.3.3NDB存储引擎

NDB是一个集群存储引擎,类似于Oracle的RAC集群,其结构式share nothing的集群架构,因此能提供更高的可用性。NDB特点是数据全在内存中。

NDB的连接操作时在MySQL数据层完成的,而不是存储引擎完成的。这意味着,连接操作需要巨大的网络开销,查询速度很慢。

1.3.4Memory存储引擎

Memory存储引擎将表中的数据存放在内存中,如果数据库重庆或者发生崩溃,表中的数据全部消失。适合存储临时数据的临时表以及数据仓库中的维度表。Memory的索引默认时哈希索引,而不是B+树索引。

1.3.5Archive存储引擎

Archive只支持insert和select操作,从MySQL5.1开始支持索引。

1.3.6Federated存储引擎

Federated存储引擎表并不存放数据,它只是指向一台远程 MySQL数据库服务器上的表。这非常类似于SQL Server 的链接服务器和Oracle的透明网关,不同的是,当前Federated存储引擎只支持MySQL数据库表,不支持异构数据库表。

1.3.7Maria存储引擎

Maria存储引擎是新开发的引擎,设计目标主要是用来取代原有的MyISAM存储引擎,从而成为MySQL 的默认存储引擎。Maria存储引擎的开发者是 MySQL的创始人之一的 Michael Widenius。因此,它可以看做是MyISAM的后续版本。Maria存储引擎的特点是:支持缓存数据和索引文件,应用了行锁设计,提供了MVCC 功能,支持事务和非事务安全的选项,以及更好的 BLOB字符类型的处理性能。

1.5 连接MySQL

1.5.1TCP/IP

TCP/IP套接字方式是 MySQL数据库在任何平台下都提供的连接方式,也是网络中使用得最多的一种方式。这种方式在TCP/IP连接上建立一个基于网络的连接请求,一般情况下客户端(client〉在一台服务器上,而MySQL实例(server)在另一台服务器上,这两台机器通过一个TCP/IP 网络连接。例如用户可以在Windows服务器下请求一台远程Linux服务器下的MySQL实例,如下所示:

c: \ >mysql -h192.168.0.101 -u david -p

Enter password:

welcome to the MySQL monitor. commands end with ; or lg.Your MysQL connection id is 18358

这里客户端是Windows,他向IP为192.168.0.101的MySQL实例发起了TCP/IP连接请求,并连接成功。

本文作者:xiaoovo

本文链接:https://www.cnblogs.com/xiaoovo/p/16558887.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   xiaoovo  阅读(32)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑