MySQL每张表的数据量

3

我正在设计一个系统,通过深入数字的研究,我意识到可能会达到一点,即每年会有54,240,211,584条记录(大约)。哇!!!!

所以,我把它降低到73,271,952条记录/年(大约)。

我通过运行一些Excel表格得出这些数字,假设:
a) 没有成功 = 87个用户,
b) 成功率低 = 4300个用户,
c) 高成功率 = 13199个用户,
d) 成功 = 55100个用户
e) 不可思议的成功 = nah

考虑到该表用于SELECT、INSERT、UPDATE和JOIN语句,并且任何登录系统的用户都会按小时/日/周执行这些语句(历史数据不是一个选项):

问题1: 第二个数量对MySQL引擎是否合适/方便,性能是否会受到小影响???

问题2: 我将表设置为InnoDB,但考虑到我使用所有的JOIN语句,并且我愿意遇到4GB限制问题,InnoDB是否有用???

表格的快速总览:
表#1: 用户/事件购买。最多15列,其中一些是VARCHAR。
表#2: 购买的票。最多8列,只有TINYINT。主键INT。每个表#1插入最多4到15行。
表#3: 每张票的项目。4列,只有TINYINT。主键INT。每个表#2插入3行。我想把它作为一个单独的表格来保留,但如果有人必须死...

表#3是问题的目标。我将其减少到第二个数量的方式是使每个表#3的行成为表#2的列。

我不想做的事情之一是对表进行分区,并在应用程序中添加更多逻辑。

每一个答案都有帮助,但更有帮助的可能是类似以下的东西:
i) 33,754,240,211,584: 不行,所以让我们放弃最后一个数字。
ii) 3,375,424,021,158: 不行,所以让我们放弃最后一个数字。
iii) 337,542,402,115: 不行,所以让我们放弃最后一个数字。如此反复,直到我们得出像“好吧,这要取决于很多因素......”这样的结论

我认为“小的性能影响”是什么???多达1,000,000条记录,执行查询不超过3秒钟。如果33,754,240,211,584条记录需要大约10秒钟,对我来说这是很好的。

为什么我不自己测试呢?我觉得我不能做这样的测试。我会做的只是插入那些行并看看会发生什么。我更喜欢先听取已经了解类似情况的人的意见。记住,我还处于设计阶段。

提前感谢。


2
Facebook最初使用MySQL,然后转向Cassandra。如果你的应用程序是下一个Facebook,你可以从Cassandra开始。 - Yada
3个回答

3
54,240,211,584是一个很大的数字。我只有处理300 million行的mysql表的经验,并且它能够轻松处理这些数据。我不确定你实际上在问什么,但以下是一些注意事项:
  • 如果需要事务支持或需要进行大量插入/更新操作,请使用InnoDB引擎。MyISAM引擎对于事务性数据不好,但是如果您的读取操作非常频繁并且只偶尔进行批量插入/更新,则可以使用该引擎。

  • 如果使用最新版本的mysql和操作系统,则没有4Gb的限制。我的最大表现在是211Gb。

  • 清除大型表中的数据非常缓慢。例如,删除一个月的所有记录需要几个小时。(但删除单个记录很快)。

  • 如果您期望有数十亿条记录,请勿使用int/tinyint,因为它们会溢出。

  • 先让东西运作起来,然后再解决扩展问题。未实现的想法几乎没有用处,而能够工作(目前)的东西可能非常有用。

  • 测试。没有真正的替代品-您的应用程序和数据库使用可能与其他人的巨大数据库完全不同。

  • 研究分区表,这是MySQL的一个最新功能,可以帮助您在许多方面进行扩展。


“未实现的想法基本上是毫无用处”的说法,我给出一个赞。 - John
非常感谢。3亿行数据给了我所需的想法。顺便说一下,网站: -将是免费的。 -不是社交应用程序。 -不是售票员(但我看你已经知道了)Cassandra...嗯。我还没有听说过它,让我再做更多的调查。我不清楚TINIYINT。我用它来表示“类似枚举”的列:“你想要多少张门票(从4到15)”?“...最终会雇用某人来帮助您解决DB的记录限制。”=不需要,但谢谢“...不要计划得太远...让某些东西工作起来,这样您就可以向投资者展示。”=不需要,但谢谢 - Rafael

1

从你现在的水平开始。从那里构建。

有很多人会向你销售你现在不需要的服务。

如果 10美元/月的共享主机不再适用,请升级,并最终雇用某人帮助您克服数据库记录限制问题。


0

没有4Gb的限制,但当然有限制。不要计划得太远。如果你刚开始创业,计划成为下一个Facebook,那很好,但你没有资源。

先把东西做出来,这样你就可以向投资者展示 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接