- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
 - 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
 
 
    
        作者:黑客防线网安MYSQL维护基地 来源:黑客防线网安MYSQL维护基地 浏览次数:0 | 
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 语句来修改指针的大小。但是这样的操作会使整个表和它的索引重写。会花费大量的时间。
| 我要申请本站:N点 | 黑客防线官网 | | 
| 专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |