关于 MySQL 使用MyISAM引擎,怎么定义 MySQL 的

作者: 怀老师 | 来源:发表于2020-04-11 14:39 被阅读0次

      网上搜索后,发现都是关于静态表和动态表的优势比较。那么需要提前声明这个表是动态表还是静态表吗?还是说,不用关键字声明,当表中没有变长字段( varchar...)时这个表就是静态表,有变长字段时就是动态表?

      MyISAM 的表又支持 3 种不同的存储格式,分别是:静态(固定长度)表;动态表;压缩表;

      1.静态表是默认存储格式,字段都是非变长字段,但是占用空间通常比动态表多,静态表的数据在存储时会按照列的宽度定义补足空格。但是返回时却不会得到。需要注意,本来就有空格时怎么处理。

      2.动态表包含变长字段,占用空间相对较少,但是频繁的更新删除记录会产生碎片,需要定期执行 optimize table 语句来改善性能,并且出现故障时恢复相对困难。

      3.压缩表时有 myisampack 工具创建,占据非常小的磁盘空间。

      关于优势和特点,好像都能查到相关数据,但是我很想知道,是否需要像 engine=myisam 这样进行声明来确定表属于哪一种表。

      最后查阅了下官方文档,找到了这个: https://dev.mysql.com/doc/refman/5.7/en/myisam-table-formats.html

      得出结论,是根据列的类型,自动选择的,不用特殊声明。

    相关文章

      网友评论

        本文标题:关于 MySQL 使用MyISAM引擎,怎么定义 MySQL 的

        本文链接:https://www.haomeiwen.com/subject/iovymhtx.html