MySQL(1)——存储引擎

MySQL存储引擎

1. 什么是存储引擎?

存储引擎就是如何存储数据、如何为存储的数据建立索引、如何更新、查询数据等技术的实现方法。因为在关系数据库中数据是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。在Oracle和SQLServer等数据库中只有一种存储引擎,所有的数据存储管理机制都是一样的;而MySQL数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据需要编写自己的存储引擎。

数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。

2. 存储引擎的作用?

存储引擎的作用规定了数据存储时的存储结构。现实生活中,由于不同的业务产生了不同的数据,这些数据有的可能偏重于被频繁的 查询,有的要求增删速度快,有的则对事务、索引、外键有特殊的规定。这样一来就堆存储数据的表要求使用不同的数据组织结构,也就是存储引擎。

3. 常见存储引擎

现在许多数据库管理系统都支持多种不同的存储引擎。MySQL 的核心就是存储引擎。

  • InnoDB事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MySQL 5.5.5 之后,InnoDB 作为默认存储引擎。
  • MyISAM:是基于 ISAM 的存储引擎,并对其进行扩展,是在 Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM 拥有较高的插入、查询速度,但不支持事务
  • MEMORY:存储引擎将表中的数据存储到内存中,为查询和引用其他数据提供快速访问。
对比项MyISAMInnoDB
主外键不支持支持
事务不支持支持
行表锁表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作行锁,操作时只锁某一行,不对其他行有影响,适合高并发的操作。
缓存只缓存索引不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响
表空间
关注点性能事务
默认安装YY

如果用InnoDB是必须有主键的,主键建议用自增的id而不用uuid,用uuid会使得索引变慢。

InnoDB是聚簇索引(叶子节点存数据),MyISAM是非聚簇索引(叶子节点存指针)

InnoDB 支持事务、行级锁, 而MyISAM都不支持

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值