前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库(存储引擎)

数据库(存储引擎)

作者头像
全栈开发日记
发布2022-05-12 21:06:24
1.9K0
发布2022-05-12 21:06:24
举报
文章被收录于专栏:全栈开发日记全栈开发日记

InnoDB

MySQL5.5及更高版本,默认存储引擎使用InnoDB,它提供了事务安全表(兼容ACID),支持外键引用的完整性约束。支持事务的提交,回滚和紧急数据恢复。它支持行级锁定。可以将数据存储在集群索引中,从而减少了基于主键查询的I/O次数。

MyISAM

管理非事务性表,提高了存储和检索的效率,支持全文搜索。

MyISAM 和 InnoDB 的区别

1. InnoDB 支持事务,MyISAM 不支持事务。

这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一;

2. InnoDB 支持外键,而 MyISAM 不支持。

对一个包含外键的 InnoDB 表转为 MYISAM 会失败;

3. InnoDB 是聚集索引,MyISAM 是非聚集索引。

然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的

4. InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描。而MyISAM 用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;

5. InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁

一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限。这也是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一;

来源:知乎

MEMORY

适用于存储的内容较小,需要频繁查询;

将数据存储在RAM中,数据的存储、查询更快;

MERGE

将多个类似的MyISAM表分组为一个表,可以处理非事务性表。

EXAMPLE

开发人员学习如何编程存储过程,不能存储和查询数据。

ARCHIVE

用于存储海量数据,但不支持索引。

CSV

以 ,(英文逗号)来分割数据并存储。

BLACKHOLE

只接收数据,不存储数据。

就像一个无底洞,放进去东西,出不来。

FEDERATED

将数据存储到远程数据库中;

mysql数据库中分为行和列;

数据在计算机上存储是以页为单位存储的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈开发日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • InnoDB
  • MyISAM
  • MyISAM 和 InnoDB 的区别
  • MEMORY
  • MERGE
  • EXAMPLE
  • ARCHIVE
  • CSV
  • BLACKHOLE
  • FEDERATED
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档