加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL架构 - MySQL存储引擎 -MyISAM

发布时间:2016-09-07 01:31:35 所属栏目:MySql教程 来源:站长网
导读:MyISAM MyISAM是MySQL默认的存储引擎。MyISAM在性能和特性上提供了一个很好的折中的解决办法。特性有, 全文索引,压缩,GIS函数。MyISAM并不支持事物和行锁。
MyISAM

MyISAM是MySQL默认的存储引擎。MyISAM在性能和特性上提供了一个很好的折中的解决办法。特性有, 全文索引,压缩,GIS函数。MyISAM并不支持事物和行锁。

存储

MyISAM把表存储在两个文件中。一个数据文件,一个索引文件。扩展名为.MYD和.MYI。MyISAM的格式 是平台独立的。意思就是你可以把这两个文件拷贝在任意的平台上。

MyISAM可以包含动态或静态列。MySQL根据表的定义来决定使用哪种格式。MyISAM表的行数限制在于, 硬盘空间和操作系统所允许存在的最大文件。

MyISAM表在MySQL5.0中,默认的是动态长度的行,以及可操作256TB数据,使用6字节的指针指向数据 记录。早期的MySQL默认指针为4字节,支持4GB的数据。所有的MySQL版本支持的指针大小上限为8字节。 为了改变MyISAM表的指针大小,你必须指定MAX_ROWS,AVG_ROW_LENGTH的值。这两个数据指出了你所需要 空间的总数。

CREATE TABLE mytable (

   a    INTEGER  NOT NULL PRIMARY KEY,

    b    CHAR(18) NOT NULL

) MAX_ROWS = 1000000000 AVG_ROW_LENGTH = 32;

这个例子中,我们告诉MySQL对这个表分配空间至少是32G。看看MySQL到底分配了多少。我们来看看。

mysql> SHOW TABLE STATUS LIKE 'mytable' G
*************************** 1. row ***************************
Name: mytable
Engine: MyISAM
Row_format: Fixed
Rows: 0
Avg_row_length: 0
Data_length: 0
Max_data_length: 98784247807
Index_length: 1024
Data_free: 0
Auto_increment: NULL
Create_time: 2002-02-24 17:36:57
Update_time: 2002-02-24 17:36:57
Check_time: NULL
Create_options: max_rows=1000000000 avg_row_length=32
Comment:
1 row in set (0.05 sec)

我们看到了Create_options的值,是我们所设置的。也看到了Max_data_length的值接近了91GB。你可 以通过ALTER TABLE 语句来修改指针的大小。但是这样的操作会使整个表和它的索引重写。会花费大量的 时间。

MyISAM 特性

做为老牌的MySQL引擎。MyISAM有很多好的特性。这些特性已经被开发了很多年。已经能满足工作需要 。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读