MySQL存储引擎
来源:互联网 发布:爱淘宝怎么删除 编辑:程序博客网 时间:2024/05/29 08:48
什么是存储引擎
存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。
我们可以指定DB默认引擎,而每个表又可以单独定制引擎。选择合适的引擎对DB的性能非常重要。
MySql中的存储引擎
1.MyISAM(常用)
访问速度快,存储空间小,但不提供事务的支持,也不支持行级锁和外键。因此当执行Insert插入和Update更新语句时,即执行写操作的时候需要锁定这个表,所以会导致效率会降低。
如果表的读操作远远多于写操作时,并且不需要事务的支持的,可以将MyIASM作为数据库引擎的首先。
大批量的插入语句时(这里是INSERT语句)在MyIASM引擎中执行的比较的快,但是UPDATE语句在Innodb下执行的会比较的快,尤其是在并发量大的时候。
每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:
.frm(存储表定义) .MYD(MYData,存储数据) .MYI(MYIndex,存储索引)
2. InnoDB(常用)
Innodb引擎提供了对数据库ACID事务的支持,并且还提供了行级锁和外键的约束。它的设计的目标就是处理大数据容量的数据库系统。Mysql运行的时候,Innodb会在内存中建立缓冲池,用于缓冲数据和索引。
当需要使用数据库的事务时,该引擎就是首选。由于锁的粒度小,写操作是不会锁定全表的。所以在并发度较高的场景下使用会提升效率的。
大容量的数据集时趋向于选择Innodb。因为它支持事务处理和故障的恢复。Innodb可以利用数据日志来进行数据的恢复。
3.memory
在内存中创建数据表,访问速度非常快。但是存储容量有限,服务异常或关闭数据就有可能丢失。常做临时表用。
4.archive
只支持插入和查询,速度非常快,适合做日志记录。
功 能
MYISAM
Memory
InnoDB
Archive
存储限制
256TB
RAM
64TB
None
支持事物
--
--
Yes
--
支持全文索引
Yes
--
--
--
B树索引
Yes
Yes
Yes
--
支持哈希索引
--
Yes
--
--
支持数据缓存
--
N/A
Yes
--
支持外键
--
--
Yes
--
索引缓存
Yes
Yes
Yes
--
数据可压缩
Yes
--
--
Yes
锁机制
表锁
表锁
行锁
行锁
- 【MySQL】MySQL存储引擎
- 【MySQL】MySQL存储引擎
- mysql federated存储引擎引擎
- MySQL的存储引擎
- 1.5. MySQL存储引擎
- mysql存储引擎
- MySQL 存储引擎
- MySQL存储引擎
- Mysql的存储引擎
- MySQL存储引擎
- MySQL存储引擎-应用
- mysql存储引擎
- MySQL存储引擎认知
- MySQL存储引擎选择
- mysql archive存储引擎
- MySQL存储引擎
- Mysql数据库存储引擎
- mysql存储引擎比较
- ⑦NDK学习之C语言联合体
- 为什么技术与产品沟通起来总是那么痛苦
- http请求常见状态码说明
- python+opencv安装
- PYTHON3.6+PYCHARM 爬虫
- MySQL存储引擎
- ⑧ NDK学习之C语言枚举
- IOS蓝牙4.0(BLE)开发二编码实战
- Hibernate入门
- 11.4模拟赛感言
- 快速学习 Spring Boot 技术栈
- 解忧程序员,你遇到的坎儿,它懂
- 正则
- Mysql 服务无法启动 服务没有报告任何错误