---恢复内容开始---
一、MySQL存储引擎?
1.引擎定义
存储引擎其实就是如何存取数据,如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系型数据苦中数据是以表格的形式,所以存储引擎也可以称为表类型。oracle和SQL server数据库中只有一种存储引擎所以数据存储和管理机制都是一样的。而MySQL提供了多种数据数存储引擎,用户可以根据不同的需求为数据表选择不同的引擎,也可以根据自己的需要编写存储引擎。
2.MySQL引擎
MySQL中的数据用各种不同的技术存储在文件或者内存中。这些技术每一种都使用不同的存储机制、索引技巧、锁定水平,并且提供广泛的不同的的功能和呢能力。通过选择不同的的技术你能够额外的速度或者功能,从而改善应用的整体功能。
3.查询MySQL中支持的存储引擎
(1) show engines; 结束符可以用分号也可以用 \g
Eigine:存储引擎的名称
Support:是否支持该引擎
Comment:对该引擎的评论
(2) 查询支持的引擎
show variables like 'have%';
4.MySQL的主要引擎
(1)InnoDB存储引擎
该引擎已经开发了10多年,已经被一些重量级的互联网公司采用,如雅虎、谷歌等。InnoDB给MySQL的表提供了事务、回滚、崩溃修复能力和多版本并发控制和事务安全
特点和缺点如下
该引擎支持自动增长列AUTO_INCREMENT。自动增长列的值不能为空必须唯一。MySQL中自增列必须为主键,如果自动增长的列不输入值的话,则插入的值为自动
增长后的值;如果输入为空或者是0,则插入的也为自动增长的值。
该引擎支持外键。外键的表为字表,外键所依赖的表为父表。父表中被字表关联的字段必须为主键。。该引擎创建的表结构存储在.firm文件中。数据和索引存储在
innodb_data_home_dir和innodb_data_file_path表空间中。
该表提供了良好的事务管理、崩溃修复能力和并发控制,缺点是读写效率较差,占用的数据空间较大。
使用该引擎的理想情况
- 更新密集的表:该引擎特别适合处理多重并发的更新请求。
- 事务:该引擎是唯一支持事务的标准的MySQL存储引擎,者是管理敏感数据的必须软件
- 自动灾难恢复:与其他存储引擎不同的是,该引擎能够自动从灾难中恢复。虽然MyISAM能在灾难后进行修复,但是其过程要长的多。
提供高效的ACID原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)兼容和事务处理能力,以及独特的高性能和具有可扩展性的
架构要素
(2)MyISAM存储引擎
文件类型
- firm:存储表结构
- myd:存储数据,是MyData的缩写
- myI:存储索引,是MyIndex的缩写
存储格式
- 静态型:如果所有的数都是