MySQL的数据库引擎
2024-10-19 14:28:51
Mysql的数据库引擎有很多,最重要的就是MyISAM、InnoDB、heap(memory),此外还有BDB、archive数据表、csv、ndb、federated
InnoDB
优点:
1、对数据库事务支持,支持四种事务级别(read uncommitted、read committed、repeatable read、serializable)
2、提供行级锁(内建的)和外键,目的是处理大量数据库系统,行级锁锁定的只是一次事务中的记录,不会锁定数据表,所以其他的用户都可以去访问操作数据库,可以大大的提高效率。此外,它可以识别死锁(两个或多个进程互相等待,死循环),并自动终止其中的一个。
3、可以崩溃恢复,有一个缓冲区
缺点:
1、不支持全文索引。
2、空间占用量大
3、不保存表行数,搜索行数时要全表扫描,比myIASM慢。
MYIASM引擎(MySQL默认)
myIASM分为:MyISAM static(数据列各自都有固定的长度、存取效率高、安全性高)、MyISAM dynamic(空间利用率高,自定义)、MyISAM compressed(访问速度快,但修改压缩后的数据)
1、对数据库事务不支持
2、不支持行级锁和外键,但支持表锁
3、数据库读写分离
4、支持全文索引
InnoDB和MyISAM两种引擎的选择
可以在不同的数据表中使用不同的引擎,即这两种引擎可以在同一数据库中使用。
1、节约空间和时间选择MyISAM
2、用到事务、安全性更高,需要用户同时操作选择InnoDB
3、没有绝对的最优,具体情况具体看待
1)大尺寸的数据集趋向于选择InnoDB引擎,因为它支持事务处理和故障恢复。数据库的大小决定了故障恢复的时间长短,InnoDB可以利用事务日志(二进制)进行数据恢复,这会比较快主键查询在InnoDB引擎下也会相当快。主键不能太长
2)批量插入使用myISAM快,因为它不支持事务,出现问题时不需要回滚
heap
heap数据表只存在内存中,使用散列索引(hash index),所以速度快
主要用途是充当临时数据表(MySQL服务停止运行,则消失)
主要适用于数量小,访问速度高的
最新文章
- tangram2.6(XE2)\framework框架加载包异常 调试的地方
- 使用Mulesoft建立webservice, simple方式,POJO
- linux 重新编译低版本gcc
- NOJ 1063 生活的烦恼
- SQL Server 2012 批量重建索引
- 1038: [ZJOI2008]瞭望塔
- 使用ambari搭建Hadoop平台
- Checkbutton 和 Radiobutton
- 异常 ORA-00257: archiver error. Connect internal only, until freed
- Less基础教程
- C/C++中const关键字的用法及其与宏定义的比较
- redis实现分布式可重入锁
- Linux基本命令总结(七)
- vue_组件间通信:自定义事件、消息发布与订阅、槽
- VS工具箱中添加DevExpress控件
- 小程序 新建项目底部tabbar
- 怎么用ajax下载文件
- 通过phantomjs 进行页面截图
- hduPiggy-Bank(完全背包)
- POJ3613 k边最短路
热门文章
- Careercup - Microsoft面试题 - 5649647234187264
- Unity的物理引擎是如何实现碰撞的呢?
- 3527: [Zjoi2014]力 - BZOJ
- discuz之搭建
- BZOJ 2820 YY的GCD
- BZOJ2694: Lcm
- Hibernate SQL方言 (hibernate.dialect)
- [工作记录] Android OpenSL ES: references &; AAC related
- 制作一个可以给team所有成员用的开发者证书
- 研究AFIncrementalStore