0

0

MySQL存储引擎的分类

黄舟

黄舟

发布时间:2017-08-02 17:02:59

|

1509人浏览过

|

来源于php中文网

原创

前几章已经说明了, 怎么在mysql中使用增删改查. 这章说点基础的概念东西,主要是为了让大家了解一下mysql数据库中的存储引擎的分类, 什么是存储引擎呢? 就是数据如何以及怎么更好的存储在本地, 让数据随时可查, 随时可用.

1.png

MySQL的学习, 可以选择安装之后, 实际操作一下.

1.在文件系统中, MySQL会把数据库(schema)中的所有信息, 都保存在数据目录下, 

每创建一个数据库, 其实就是相当于创建了一个目录, 然后数据库所对应的表, 在目录的文件下, 创建相应的文件. 并且后缀名为.frm, 

这里需要注意一下的就是, 在Windows中, 路径是不区分大小写的, 但是在unix, linux 中是区分大小写的. 

2.png

2.可以使用SHOW TABLE STATUS LIKE 'accout'; 查看相应的表信息. 

简单的说一下对应的描述. 

Name : 表名

Engine : 表的存储类型, 在旧版本中, 该列的名字叫做Type.

Rows : 表的行数, 需要注意的是 ,该数据, 在MyISAM引擎值是正确的, 但是在InnoDB, 该值为估计值. 

Data_length  : 表数据的大小(单位: 字节)

Auth_increment : 下一个AUTH_INCREMENT的值.

Update_time : 表数据的最后修改时间

Comment : 表的其他信息描述, 不同的存储引擎对应的数据不一样, MyISAM表, 保存的是, 创建时表的注释, 如果是InnoDB表, 保存的是表空间的剩余空间信息, 如果是视图, 信息是VIEW的文本字样. 

其他的不在一一叙述, 多用搜索引擎. 哈哈.

magento(麦进斗)
magento(麦进斗)

Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的

下载

3.png

3.InnoDB存储引擎: 

InnoDB是MySQL默认的事物型引擎, 也是最重要, 使用最普遍的存储引擎. 主要是用作处理大量的短期事物(short-lived). 短期事物大部分情况是正常提交的, 很少被回滚. 基于InnoDB的特性, 除非有其他的原因, 一般默认都是使用InnoDB引擎. 

InnoDB的数据存储在表空间(tablespace)中的.

InnoDB采用MVCC来支持高并发, 并且实现了四个标准的隔离级别. 默认的为: REPEATABLE READ(可重复读).  

这里只是简单的说一下存储引擎的类型, 如果想继续深入学习, 推荐安看官方的手册. "InnoDB事务模型和锁".

4.png

4.MyISAM存储引擎:在MySQL5.1及之前的版本中, MyISAM是默认的存储引擎. MyISAM提供了大量的特性, 包括: 全文索引, 压缩, 空间函数等. 但是MyISAM不支持事物和行级锁, 而且有一个比较大的缺陷, 就是崩溃后无法安全恢复.  但是如果是只读数据, 或者表比较小, 还是可以继续使用该引擎, 但是最好默认使用InnoDB存储引擎. MyISAM存储的文件有两个: 数据文件和索引文件, 分别.MYD和.MYI为后缀名. MyISAM特性: 加锁与并发, 修复, 索引特性. 加锁是对整张表加锁, 而不是针对行. 读取的时候, 读到的所有表加共享锁. 写入时对表加排它锁. MyISAM压缩表, 如果表数据, 在导入之后就不会在进行修改操作, 这样就适合采用MyISAM压缩表. 

5.其他的存储引擎, 除了这两种引擎以外, 还有其他的内建引擎和第三方引擎, 这里只是简单的说一下, 并没有过多的介绍其细节. 

既然有这么多的引擎我们应该如果选择呢? 

在大部分的情况下, InnoDB肯定是正确的选择. 所以在MySQL5.5开始, InnoDB就是默认的存储引擎了. 对于如果选择, 就是简单一句话. 除非需要用到非InnoDB不具备的特性, 并且没有其他的办法可以代替, 都应该优先选择InnoDB引擎.

5.png

注意事项

要选择合适的存储引擎, 以避免一些常规的问题. 操作这些最好是在测试的环境下进行.

学习都是需要一点一滴的积累和进步. 不可贪吃.

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.8万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 793人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号