快速业务通道

MySQL数据库单一表突破4G限制的实现方法

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-18
明确实是这样子。随后我们翻阅了EXT3文件系统的相关技术参数,EXT3是在EXT2基础上演变而来。EXT2所支持最大单一文件长度是2G,这个是很蹩脚的一个限制。EXT3做的很大一个改善就是将这个限制放大到了2TB,由此稍松一口气,起码不是操作系统上的限制。


经过朋友的开导,了解到单一文件大小有如下几个因素:

1. 文件系统的限制(如刚存所说EXT3的2TB限制)

2. 某一程序进程所能存取的第一文件最大尺寸(例如apache在Linux EXT3下能存取的最大尺寸为2G,诸如日志)


初步判断瓶颈就在上述其中第二项。随后找到myisamchk来显示一下表信息,证明了瓶颈就在MySQL本身的存取上。


# myisamchk -dv cdb_posts


结果就不贴了,其中有一项Max datafile length的值恰好就是4G。由此产生了瓶颈。

后来翻阅了N多资料,进行了N多尝试,也走了不少弯路,最终觉得还是官方文档比较可靠。比较老的文档里写道这是由于tmp_table_size的值造成的,也有提到用BIG-TABLES这个参数。事实证明这些都是歧途。大晚上的确实很累,这里只给出最终的解决方案吧,中间的就不罗嗦了。


进到mysql客户端。

# mysql -uroot -p

Enter passWord: ******

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 59411 to server version: 4.0.18-standard


Type ''help;'' or ''\h'' for help. Type ''\c'' to clear the buffer.


mysql> use ******

Database changed

mysql> ALTER TABLE cdb_posts MAX_ROWS=1000000000 AVG_ROW_LENGTH=15000;


因为这个表非常大,执行时间在双Athlon的专业服务器上竟然花了30分钟!

之后再通过myisamchk查看该表的信息:

# myisamchk -dv cdb_posts

MyISAM file: cdb_posts

Record format: Packed

Character set: latin1 (8)

File-version: 1

Creation time: 2004-08-30 22:19:48

Recover time: 2004-08-30 22:42:47

Status: open,changed

Auto increment key: 1 Last value: 1063143

Data records: 619904 Deleted blocks: 5

Datafile parts: 619909 Deleted data: 323872

Datafile pointer (bytes): 6 Keyfile pointer (bytes): 4

Datafile length: 4295287332 Keyfile length: 40421376

Max datafile length: 281474976710654 Max keyfile length: 4398046510079

Recordlength: 149


table description:

Key Start Len Index Type Rec/key Root Blocksize

1 1 4 unique unsigned long 1

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号