一、概述:
创建、查询、更新和删除(增删改查)数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是存储引擎。
二、查看Mysql支持的存储引擎
SHOW ENGINES;
三、常用的存储引擎介绍
1. InnoDB存储引擎
InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,上图也看到了,InnoDB是默认的MySQL引擎。
特点:支持事务、外键,具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎,行级锁定。
数据存储顺序:
Innodb表数据的存储是按照主键的顺序排列每个写入的数据,该特点决定了该表类型写入数据的操作较慢
注意:
事务: 把许多写入(增、改、删)的sql语句捆绑在一起,要么执行、要么不执行。事务经常用于与“钱”有关的方面
四个特点: 原子,一致,持久,隔离
具体操作:
start transaction;
sql语句
sql语句有问题
回滚
提交
和commit只能执行一个
并发性:
该存储类型的并发性较高,多人同时操作该数据表时,为了使数据表的内容不容易发生变化需要对该表的数据进行'锁定'
该类型的锁为行级锁,只锁定被操作当期的纪录。
InnoDB不创建目录,使用InnoDB时,该类型 数据、索引 的物理文件位置:
所有innodb表的数据和索引信息都存储在以下ibdata1文件中。
注: 可以为每个innodb类型表创建自己的存储空间,默认情况下,每个InnoDB表数据和索引不会创建单独的文件存储
2.Myisam存储引擎
MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务。
① 该类型的数据表 表结构、数据、索引 都有独立的存储文件:
MyISAM数据表:
*.frm:表结构文件
*.MYD:表数据文件
*.MYI:表索引文件
每个myisam数据表的 结构、数据、索引 都有独立的存储文件
特点:独立的存储文件可以单独备份、还原
② 数据存储顺序:Myisam数据表存储是按照自然顺序排列每个写进的数据
特点: 该特点决定了该类型的数据表写入数据的速度较快
③ 并发性:
该存储类型的数据表的并发性较低。
原因:该类型锁的级别是——表锁
④ 压缩机制
如果一个数据表的数据非常多,为了节省存储空间,需要对表进行压缩处理
压缩工具: myisampack.exe 表名
重建索引: myisamchk.exe -rq 表名
解压缩工具: myisamchk.exe --unpack 表名
注:
压缩后的数据表不能进行插入,更新,删除(只能读)操作,需要操作时需要先进行解压,写入数据后再压缩
压缩的数据表特点: 不能频繁的写入操作,知识内容固定的数据表可以做成压缩处理
例如: 存储全国地区信息的数据表,收货地址信息的数据表
总结:
Innodb存储引擎:适合做修改,删除
Myisam存储引擎:适合做查询,写入
3. Archive(归档存储引擎)
Archive支持高并发的插入操作,但是本身不是事务安全的;
比较适合存储「日志」性质的信息
4. Memory
如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果
特点:操作数独非常快,但是服务器断电,给存储引擎的数据立即丢失。
使用哪一种引擎需要灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能