我正在设计一个系统,通过深入数字的研究,我意识到可能会达到一点,即每年会有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秒钟,对我来说这是很好的。
为什么我不自己测试呢?我觉得我不能做这样的测试。我会做的只是插入那些行并看看会发生什么。我更喜欢先听取已经了解类似情况的人的意见。记住,我还处于设计阶段。
提前感谢。