前几章已经说明了, 怎么在MySQL中使用增删改查. 这章说点基础的概念东西,主要是为了让大家了解一下MySQL数据库中的存储引擎的分类, 什么是存储引擎呢? 就是数据如何以及怎么更好的存储在本地, 让数据随时可查, 随时可用.
MySQL的学习, 可以选择安装之后, 实际操作一下.
1.在文件系统中, MySQL会把数据库(schema)中的所有信息, 都保存在数据目录下,
每创建一个数据库, 其实就是相当于创建了一个目录, 然后数据库所对应的表, 在目录的文件下, 创建相应的文件. 并且后缀名为.frm,
这里需要注意一下的就是, 在Windows中, 路径是不区分大小写的, 但是在unix, linux 中是区分大小写的.
2.可以使用SHOW TABLE STATUS LIKE 'accout'; 查看相应的表信息.
简单的说一下对应的描述.
Name : 表名
Engine : 表的存储类型, 在旧版本中, 该列的名字叫做Type.
Rows : 表的行数, 需要注意的是 ,该数据, 在MyISAM引擎值是正确的, 但是在InnoDB, 该值为估计值.
Data_length : 表数据的大小(单位: 字节)
Auth_increment : 下一个AUTH_INCREMENT的值.
Update_time : 表数据的最后修改时间
Comment : 表的其他信息描述, 不同的存储引擎对应的数据不一样, MyISAM表, 保存的是, 创建时表的注释, 如果是InnoDB表, 保存的是表空间的剩余空间信息, 如果是视图, 信息是VIEW的文本字样.
其他的不在一一叙述, 多用搜索引擎. 哈哈.
3.InnoDB存储引擎:
InnoDB是MySQL默认的事物型引擎, 也是最重要, 使用最普遍的存储引擎. 主要是用作处理大量的短期事物(short-lived). 短期事物大部分情况是正常提交的, 很少被回滚. 基于InnoDB的特性, 除非有其他的原因, 一般默认都是使用InnoDB引擎.
InnoDB的数据存储在表空间(tablespace)中的.
InnoDB采用MVCC来支持高并发, 并且实现了四个标准的隔离级别. 默认的为: REPEATABLE READ(可重复读).
这里只是简单的说一下存储引擎的类型, 如果想继续深入学习, 推荐安看官方的手册. "InnoDB事务模型和锁".
4.MyISAM存储引擎:在MySQL5.1及之前的版本中, MyISAM是默认的存储引擎. MyISAM提供了大量的特性, 包括: 全文索引, 压缩, 空间函数等. 但是MyISAM不支持事物和行级锁, 而且有一个比较大的缺陷, 就是崩溃后无法安全恢复. 但是如果是只读数据, 或者表比较小, 还是可以继续使用该引擎, 但是最好默认使用InnoDB存储引擎. MyISAM存储的文件有两个: 数据文件和索引文件, 分别.MYD和.MYI为后缀名. MyISAM特性: 加锁与并发, 修复, 索引特性. 加锁是对整张表加锁, 而不是针对行. 读取的时候, 读到的所有表加共享锁. 写入时对表加排它锁. MyISAM压缩表, 如果表数据, 在导入之后就不会在进行修改操作, 这样就适合采用MyISAM压缩表.
5.其他的存储引擎, 除了这两种引擎以外, 还有其他的内建引擎和第三方引擎, 这里只是简单的说一下, 并没有过多的介绍其细节.
既然有这么多的引擎我们应该如果选择呢?
在大部分的情况下, InnoDB肯定是正确的选择. 所以在MySQL5.5开始, InnoDB就是默认的存储引擎了. 对于如果选择, 就是简单一句话. 除非需要用到非InnoDB不具备的特性, 并且没有其他的办法可以代替, 都应该优先选择InnoDB引擎.
注意事项
要选择合适的存储引擎, 以避免一些常规的问题. 操作这些最好是在测试的环境下进行.
学习都是需要一点一滴的积累和进步. 不可贪吃.
以上是MySQL存储引擎的分类的详细内容。更多信息请关注PHP中文网其他相关文章!