MYSQL大数据表设置

时间:2013-08-11 19:27:33

标签: mysql large-data

我的表格如下所示:

    CREATE TABLE IF NOT EXISTS `levels` (
  `id` int(6) NOT NULL AUTO_INCREMENT,
  `name` varchar(25) NOT NULL,
  `creator` varchar(25) NOT NULL,
  `levelcode` longtext NOT NULL,
  `description` mediumtext NOT NULL,
  `date` date NOT NULL,
  `views` int(6) NOT NULL,
  `favCount` int(6) NOT NULL,
  `total_votes` int(11) NOT NULL,
  `total_value` int(11) NOT NULL,
  `rating` float(4,2) NOT NULL,
  `spamCount` int(3) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

基本上我创造了一个游戏,人们可以提交自己的关卡。我目前正在讨论的是是否将levelcode列移动到它自己的表中,甚至是它自己的文本文件中的每个级别。 Levelcode可以变得相当大(500,000+个字符)

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

长篇文章对你来说应该没问题。从这里的文档:

http://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html

LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

A TEXT column with a maximum length of 4,294,967,295 or 4GB (232 – 1) characters.
The effective maximum length is less if the value contains multi-byte characters.
The effective maximum length of LONGTEXT columns also depends on the configured
maximum packet size in the client/server protocol and available memory. Each
LONGTEXT value is stored using a 4-byte length prefix that indicates the number
of bytes in the value.

编辑:我认为提到的数据包大小是MySQL数据包大小,默认为16MB。

答案 1 :(得分:0)

你可以在你的情况下使用LongText作为Longtext的限制

LONGBLOB, LONGTEXT       L + 4 bytes, where L < 2^32   (4 Gigabytes)

查看此link

答案 2 :(得分:0)

如果你不想用它杀死MySQL的性能,请将它存储在硬盘上并在表格中保存路径。