• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

关系型数据库——MySQL存储引擎简介

极客笔记 多啦H梦 8个月前 (08-13) 299次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

MySQL

关系型数据库是采用关系模型来组织数据的数据库。

所谓关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表格及其之间的联系所组成的一个数据组 。

目前,用得最普遍的关系型数据库有 MySQL 、 Oracle 、 PostgreSQL 等 。

这里针对 Java 开发中最常用的 MySQL 进行阐述。

存储引擎

MySQL 主要有两种存储引擎,分别是 MyISAM 和 InnoDB 。

1) MyISAM

MySQL5.5 之前的默认引擎,特点如下 。

  • 不支持行锁,读取时对需要读到的所有表加锁,写入时则对表加排他锁 。
  • 不支持事务 。
  • 不支持外键 。
  • 不支持崩溃后的安全恢复 。
  • 在表有读取查询的同时,支持往表中插入新记录 。
  • 支持 BLOB 和 TEXT 的前 500 个字符索引,支持全文索引 。
  • 支持延迟更新索引,极大地提升了写入性能 。
  • 对于不会进行修改的表,支持压缩表,极大地减少了磁盘空间占用 。

2) InnoDB

MySQL 5.5 后的默认引擎,特点如下 。

  • 支持行锁,采用 MVCC 来支持高并发,有可能死锁 。
  • 支持事务 。
  • 支持外键 。
  • 支持崩溃后的安全恢复 。
  • 不支持全文索引 。

由于 MyISAM 缓存有表 meta-data (行数等) ,因此在做 COUNT(*)时对于一个结构很好的查询是不需要消耗多少资源的 。

而对于 InnoDB 来说,则没有这种缓存 。

当你需要行锁定、事务时,使用 InnoDB 则是更好的选择, 也具有更高级的安全性 。

此外, MyISAM 和InnoDB 使用的索引也是有区别的,前者为非聚簇索引 ,后者为聚簇索引 。

总体来说, MyISAM 适合读密集型的表 ,而 InnoDB 适合写密集型的表。

在数据库做主从分离的情况下,经常选择 MyISAM 引擎作为主库的存储引擎。


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:关系型数据库——MySQL存储引擎简介
喜欢 (0)
[247507792@qq.com]
分享 (0)
多啦H梦
关于作者:
热爱开源,热爱分享,谢谢大家的资瓷!

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00