MySQL数据库的最大表大小
MySQL表的最大大小是多少? 50GB是200万吗? 500GB容量需要500万?
在规模规模的高端,我是否需要考虑压缩数据?或者,如果桌子太大,则将桌子分开?
解决方案
回答
本文应该回答一些问题。这是关于youtube及其对MySQL的使用:
http://mysqldatabaseadministration.blogspot.com/2007/04/youtube-and-mysql.html
回答
关于第一个问题,数据库的有效最大大小通常由操作系统确定,特别是MySQL Server能够创建的文件大小,而不是MySQL Server本身。这些限制在表大小限制中起着重要作用。 MyISAM的工作方式不同于InnoDB。因此,任何表都将取决于这些限制。
如果我们使用InnoDB,则在处理表大小方面将有更多选择,在这种情况下,调整表空间的大小是一个选项,因此,如果我们打算调整它的大小,这就是方法。看看表已满错误页面。
我不确定给出所有必要信息(操作系统,表类型,列,数据类型和每个表的大小等)的每个表的实际记录数量,而且我不确定此信息是否易于计算,但是我不确定在几种情况下,我们已经看到了大约1bi记录的简单表,而MySQL并没有放弃。
回答
我曾经使用过非常大的(Terabyte +)MySQL数据库。我们拥有的最大表实际上超过了十亿行。
有效。 MySQL大部分时间都正确地处理了数据。但是,这非常笨拙。
仅备份和存储数据是一个挑战。如果需要的话,还原表将需要几天的时间。
我们有10-100百万行范围内的许多表。对表的任何重要连接都非常耗时,并且要花很长时间。因此,我们编写了存储过程来"遍历"表,并针对" id"的范围进行过程联接。这样,我们可以一次处理10-100,000行的数据(加入id的1-100,000,然后加入100,001-200,000,依此类推)。这比加入整个表的速度快得多。
在不基于主键的非常大的表上使用索引也要困难得多。 Mysql分两部分存储索引-它存储索引(主索引除外)作为主键值的索引。因此,索引查找分为两个部分:首先,MySQL进入索引,并从索引中拉出需要查找的主键值,然后对主键索引进行第二次查找,以查找这些值在何处。
这样做的净结果是,对于非常大的表(1-200百万加行),对表进行索引的限制更加严格。我们需要更少,更简单的索引。而且即使执行不直接在索引上的简单select语句也可能永远不会回来。 where子句必须命中索引或者忘记索引。
但话虽这么说,事情确实有效。我们能够对这些非常大的表使用MySQL,并进行计算并获得正确的答案。