MySQL学习笔记(2) - MyISAM存储引擎
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL学习笔记(2) - MyISAM存储引擎,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2357字,纯文字阅读大概需要4分钟。
内容图文
![MySQL学习笔记(2) - MyISAM存储引擎](/upload/InfoBanner/zyjiaocheng/466/2090c722a48c4c90b2bf2343643f0fc0.jpg)
在5.5版本之前,MyISAM是MySQL默认的存储引擎。MyISAM不支持事务、也不支持外键,其优势是访问速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用都可以使用这个引擎来创建表。每个MyISAM在磁盘上存储成3个文件,其文件名和表名相同,但扩展名分别是:
- .frm(存储表的定义)
- .MYD(MYData,存储数据)
- .MYI(MYIndex,存储索引)
数据文件和索引文件可以分别存放在不同的目录,平均分布IO,以获得更快的速度。要指定索引文件和数据文件的路径,需要在创建表时通过DATA DIRECTORY
和INDEX DIRECTORY
语句指定,也就是说不同的MyISAM表的索引文件和数据文件可以放到不同的路径下。文件路径要是绝对路径,并有访问权限。
MyISAM类型的表可能损坏,原因可能是多种多样的,损坏后的表可能不能被访问,会提示需要修复或者访问后返回错误的结果。MyISAM类型的表提供了修复工具,可以用 CHECK TABLE
语句来检查MyISAM的健康状态,并用 REPAIR TABLE
语句修复一个损坏的MyISAM表。表损坏可能导致数据库异常重启。
MyISAM表支持3中不同的存储格式,分别是:
- 静态表(固定长度)
- 动态表
- 压缩表
静态表
是默认的存储格式。静态表中的字段都是定长字段,这样每个记录都是固定长度的,这种存储方式的优点是存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多。静态表的数据在存储的时候会按照列的宽度定义补足空格,但是在应用访问的时候并不会得到这些空格,这些空格在返回给应用之前已经去掉了。
但是也有些需要特别注意的问题,如果需要保存的内容后面本来就带有空格,那么在返回结果的时候也会被去掉。下面的例子演示了插入的记录包含空格时的处理情况:
mysql> create table myisam_char (name char(10)) engine=myisam; Query OK, 0 rows affected (0.00 sec) mysql> insert into myisam_char values(‘abcde‘),(‘abcde ‘),(‘ abcde‘),(‘abcde ‘); Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> select name,length(name) from myisam_char; +---------+--------------+ | name | length(name) | +---------+--------------+ | abcde | 5 | | abcde | 5 | | abcde | 7 | | abcde | 5 | +---------+--------------+ 4 rows in set (0.00 sec)
动态表
中包含变长字段,记录不是固定长度的,这样存储的优点是占用空间相对较少,但是频繁的更新或删除记录会产生碎片,需要定期执行optimize table
语句或myisamchk -r
命令来改善性能,并且出现故障的时候恢复相对比较困难。
压缩表
由 myisampack
工具创建,占据非常小的磁盘空间。因为每个记录是被单独压缩的,所以只有非常小的访问开销。
MySQL学习笔记(2) - MyISAM存储引擎
标签:
本文系统来源:http://www.cnblogs.com/magnes/p/5613353.html
内容总结
以上是互联网集市为您收集整理的MySQL学习笔记(2) - MyISAM存储引擎全部内容,希望文章能够帮你解决MySQL学习笔记(2) - MyISAM存储引擎所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。