MySQL体系结构
客户端连接
支持接口:支持的可客户端链接,例如C、Java、PHP等语言来连接MySQL数据库
第一层:网络连接层
连接池:管理、缓冲用户的连接,线程处理等需要缓存的需求。
第二层:核心服务层
管理服务和工具:系统的管理和控制工具,例如备份恢复、赋值、集群等。
SQL接口:接受SQL命令,并且返回查询结果。
查询解析器:验证和解析SQL命令、例如过滤条件,语法结构等。
查询优化器:在执行查询之前,使用默认的一套优化机制进行优化sql语句。
缓存如果缓存当中有想查询的数据,则直接将缓存中的数据返回。没有的话再重新查询。
第三层:存储引擎层
插件式存储引擎:管理和操作数据的一种机制,包括(存储数据、如何更新、查询数据等)
第四层:系统文化层
文件系统:配置文件、数据文件、日志文件、错误文件、二进制文件等的保存。
存储引擎
存储引擎的操作
查询数据库支持的存储引擎
查询某个数据库中所有数据表的存储引擎
查询数据库中某个数据表的存储引擎
创建数据表时指定存储引擎
修改数据表存储引擎
/*
查询数据库支持的存储引擎
*/
SHOW ENGINES;
-- 查询数据库下所有数据表的存储引擎
SHOW TABLE STATUS FROM db4;
-- 查询数据库下指定数据表的存储引擎
SHOW TABLE STATUS FROM db4 WHERE NAME='user';
-- 创建数据表时指定存储引擎为MYISAM
CREATE TABLE engine_test(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(10)
)ENGINE = MYISAM;
-- 查看db4数据库内全部数据表的存储引擎
SHOW TABLE STATUS FROM db4;
-- 修改engine_test存储引擎为INNODB
ALTER TABLE engine_test ENGINE = INNODB;
存储引擎的选择
MyISAM
特点:不支持事务和外键操作。读取速度快,节约资源。
使用场景:以查询操作为主,只有很少的更新和删除操作,并且对事物的完整性、并发性要求不是很高!
InnoDB
特点:支持事务外键操作。是MySQL默认的存储引擎。
使用场景:对事物的完整心有比较高的要求,在并发条件下要求数据的一致性,读写频繁的操作!
MEMORY
特点:将所有数据保存在内存中,在需要快速定位记录和其他类似数据环境下,可以提供更快的访问。
使用场景:通常用于更新不太频繁的小表,用来快速得到访问的结果!