操作系统和MyISAM存储引擎限制

OS: CentOS 32bit
File System: ext3
Mysql Version: 5.5.3m3 source code

今天做了数据插入测试,遇到mysql报错
1. OLTP测试的时候MyISAM引擎插入数据最多只能4719889条,Innodb则没有问题
报错:ALERT: Error 1114 The table 'sbtest' is full
FATAL: failed to create test table!

网上查了一下,有几个可能性,一一尝试:
(1) 设置SQL_BIG_TABLES

mysql> show variables like 'SQL_BIG_TABLES';
mysql> set SQL_BIG_TABLES ON;

没用!

 

(2) 修改系统/tmp 目录大小,参考http://dev.mysql.com/doc/refman/5.1/zh/problems.html A4.4
修改mysqld的 —tmpdir参数(bingo)
插入的行增加到512W,然后数据不增加,也不报错,Show Processlist 显示插入仍在运行


(3)MyISAM数据指针只有4Byte=32位,寻址范围=4G,所以MYD文件不能大于4294967296Byte
我实际的MYD文件大小5490000000Byte,已经超过这个范围了
官方文档显示:

● Large files (up to 63-bit file length) are supported on file systems and operating systems that support large files.

● There is a limit of (232)2 (1.844E+19) rows in a MyISAM table.

所以虽然可能和MyISAM有关系,但是应该也不是MyISAM的限制。


(4)操作系统单文件大小限制
查了ext3文件系统,默认block设置为1KByte的时候,单文件最大可达到16GByte,所以也排除这个可能性

 

总结:最后发现虽然数据目录还有空间,但是slow.log 和 binlog的磁盘空间占用到100%,所以无法继续插入,清除日志文件,重新测试!

 

 

 

转载于:https://www.cnblogs.com/istrong/archive/2012/06/08/2541857.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值