MySQL—浅谈MySQL存储引擎
来源:互联网 发布:东莞天行健网络怎么样 编辑:程序博客网 时间:2024/05/22 17:50
和大多数数据库不同,MySQL中有一个存储引擎的概念,对于不同的存储需求可以选择最优的存储引擎。如下是MySQL种常见的几种引擎以及其特性。
其中MyISAM和InnoDB是我们最最常用的两个存储引擎,下面主要将对比这两种引擎的特点,以及分析在不同的需求下如何选择合适的引擎。
MyISAM
MyISAM是MySQL默认的数据库引擎,它不支持事务、不支持外键,优点是访问速度比较快,因为使用表级锁所以不存在死锁(后面会讲),但是一个重要缺陷就是不能在表损坏后恢复数据。所以对于事务完整性要求或者以SELECT、INSERT为主要需求的应用,MyISAM是最好的选择。
每一个MyISAM在磁盘上存储为3个文件:
- table_name.frm(表定义)
- table_name.MYD(表数据)
- table_name.MYI(表索引)
由于数据和索引可以存放在不同的目录,所以可以获得更快的速度(平均分布IO)。
InnoDB
InnoDB提供了具有提交、回滚和崩溃恢复能力的事务安全,使用了行级锁,因此锁冲突较MyISAM小很多。但是InnoDB写的处理效率较差,并且占用更多的磁盘空间保留数据和索引。
- 外键约束:MySQL支持外键约束的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对用的索引。
- 存储方式:
使用共享表空间:表结构在.frm中,数据在innodb_data_home_dir中,索引在innodb_data_file_path定义的表空间中。
使用多表空间存储:表的表结构仍然在.frm中,但是每一个表的数据和索引分开放在.ibd中。
选择合适的存储引擎
MyISAM:默认的插件式引擎。如果应用是以读、写操作为主,更新和删除操作为辅,对事物的完整性和并发性要求不高,那么是非常合适的,如WEB、数据仓库等应用环境下。
InnoDB:用于事务处理应用程序,支持外键。如果应用对事务完整性有比较高的要求,并发条件下需要数据的一致性,除了数据的读、写以外还有大量的删除更新操作,那么InnoDB是更加合适的引擎。InnoDB有效降低删除和更新带来的锁定,还可以确保事务的完整提交和回滚。对于类似财务系统和计费系统,InnoDB是不二之选。
阅读全文
1 0
- MySQL—浅谈MySQL存储引擎
- MySQL浅谈MyISAM存储引擎
- MYSQL 浅谈MyISAM 存储引擎
- [MySQL] 浅谈InnoDB存储引擎
- 浅谈MySQL的存储引擎
- MySQL,浅谈MyISAM存储引擎
- MYSQL 浅谈MyISAM 存储引擎
- MYSQL 浅谈MyISAM 存储引擎
- MYSQL 浅谈MyISAM 存储引擎
- MYSQL 浅谈MyISAM 存储引擎
- MYSQL 浅谈MyISAM 存储引擎
- MySQL之浅谈MySQL的存储引擎
- MySQL数据库浅谈MyISAM存储引擎
- 浅谈mysql数据库存储引擎的选择
- 【MySQL】MySQL存储引擎
- 【MySQL】MySQL存储引擎
- 浅谈MySQL的存储引擎之表类型存储
- Mysql——存储引擎
- 2012NOIP普级组第三题--摆花(参考洛谷题解)
- C#利用Mysql.Data.dll操作Mysql数据库
- Shell之Sed命令-yellowcong
- A616-HP-ProDesk 480 G2 MT电脑网络同传
- 主键、外键和索引
- MySQL—浅谈MySQL存储引擎
- 枚举-算法
- MySQL慢查询(二)
- springMVC项目中整合BaseDao
- 【干货】【通过特征可视化分析调整网络技巧】
- 文件操作(创建,打开,读取,关闭等)
- 【蓝桥杯】【杨辉三角】
- tensorflow 安装
- swiper 滑动图片垂直居中