MyISAM
基于较旧的(且不再可用)ISAM
存储引擎,但有许多有用的扩展。
表16.2 MyISAM存储引擎功能
功能 | 支持 |
---|---|
b -树索引 | 是的 |
备份/恢复时间点(在服务器中实现,而不是在存储引擎中。) | 是的 |
群集数据库支持 | 不 |
聚集索引 | 不 |
压缩数据 | 是(仅在使用压缩行格式时支持压缩的MyISAM表。只读使用带有Myisam的压缩行格式的表。) |
数据库库 | 不 |
加密的数据 | 是(通过加密函数在服务器中实现。) |
外国钥匙支持 | 不 |
全文搜索索引 | 是的 |
地理空间数据类型支持 | 是的 |
地理空间索引支持 | 是的 |
哈希索引 | 不 |
索引缓存 | 是的 |
锁的粒度 | 桌子 |
MVCC. | 不 |
复制支持(在服务器中实现,而不是在存储引擎中。) | 是的 |
存储限制 | 256年结核病 |
T树索引 | 不 |
交易 | 不 |
更新数据字典的统计信息 | 是的 |
每一个MyISAM
表在两个文件中存储在磁盘上。文件具有以表名开头的名称,并具有指示文件类型的扩展名。数据文件有一个.myd.
(mydata.
)扩展。索引文件有一个。我的我
(myIndex.
)扩展。表定义存储在MySQL数据字典中。
来显式指定您想要的MyISAM
表中,用an表示引擎
表选项:
CREATE TABLE t (i INT) ENGINE = MYISAM; / /创建表
在MySQL 8.0中,通常需要用到引擎
指定MyISAM
存储引擎,因为InnoDB
是默认引擎。
你可以检查或修理MyISAM
表的mysqlcheck客户端或myisamchk实用程序。你也可以压缩MyISAM
表与yyisampack.占用更少的空间。看到第4.5.3节,“mysqlcheck -表维护程序”,第4.6.4节“Myisamchk - Myisam表维护实用程序”, 和myisampack -生成压缩的只读MyISAM表。
在MySQL 8.0中MyISAM
存储引擎不提供分区支持。分区MyISAM
在以前版本的MySQL中创建的表不能在MySQL 8.0中使用。有关更多信息,请参见第24.6.2节,“与存储引擎相关的分区限制”。有关升级此类表的帮助,使它们可以在MySQL 8.0中使用,请参阅第2.11.4节“MySQL 8.0的变化”。
MyISAM
表格有以下特点:
首先使用低字节存储所有数据值。这使得数据机器和操作系统无关。二进制可移植性的唯一要求是机器使用两个人的签名整数和IEEE浮点格式。这些要求广泛应用于主流机中。二进制兼容性可能不适用于嵌入式系统,有时具有特殊处理器。
首先将数据存储低字节没有显着的速度惩罚;表行中的字节通常是未对准的,并且在顺序中以顺序读取未对齐的字节需要几乎不足。此外,与其他代码相比,从服务器中获取列值的代码不是时间。
首先使用高字节存储所有数字键值以允许更好的索引压缩。
支持大文件的文件系统和操作系统支持大文件(最大63位文件长度)。
有一个极限32)2(1.844E+19)行
MyISAM
桌子。每个索引数
MyISAM
表是64。每个索引的最大列数是16。
最大密钥长度为1000字节。这也可以通过更改源代码和重新编译来更改。如果密钥长度大于250字节,则使用大于缺省值1024字节的密钥块大小。
按排序顺序插入行时(如您使用的
自动递增
列),则拆分索引树,使高节点只包含一个键。这提高了索引树中的空间利用率。内部处理一个
自动递增
支持每个表的列。MyISAM
自动更新此列插
和更新
操作。这使得自动递增
列速度更快(至少10%)。序列顶部的值在被删除后不会被重用。(当一个自动递增
列被定义为多列索引的最后一列,从序列顶部删除的值的重用确实发生。)自动递增
值可以用ALTER TABLE
或者myisamchk。当混合删除、更新和插入时,动态大小的行碎片更少。这是通过自动组合相邻删除块和扩展块来完成的,如果下一个块被删除。
MyISAM
支持并发插入:如果一个表的数据文件中间没有空闲块,可以这样做插
在其他线程从表中读取数据的同时,向表中添加新的行。删除行或更新包含比当前内容更多数据的动态长度行的结果可能是空闲块。当所有的空闲块都用完(填满)后,以后的插入将再次并发。看到第8.11.3节,“并发插入”。您可以将数据文件和索引文件放在不同物理设备上的不同目录中,以获得更高的速度
数据目录
和索引目录
表选项创建表
。看到第13.1.20节,“CREATE TABLE语句”。空值
索引列中允许值。每个钥匙需要0到1个字节。每个字符列可以具有不同的字符集。看到第十章,字符集,排序规则,Unicode。
有一个旗帜
MyISAM
指示表是否正确关闭的索引文件。如果mysqld开始了myisam_recover_options.
系统变量集,MyISAM
打开表时会自动检查表,如果表没有正确关闭,则修复表。myisamchk将表标记为已检查,如果使用
——update-state
选项。myisamchk - 快餐只检查那些没有此标记的表。myisamchk - 分析存储键的统计信息,以及整个键。
yyisampack.可以包
斑点
和VARCHAR
列。
MyISAM
还支持以下功能:
额外的资源
一个论坛致力于
MyISAM
存储引擎可用https://forums.10bet靠谱mysql.com/list.php?21。