我有一个场景和两个选项来实现它。哪一个会更有效率?
我正在使用mySQL存储学生的出勤率(约1亿)。然后使用此考勤数据根据用户的选择绘制图表和结果。
方法1)在新行中存储每天学生的出勤数据(这将以指数方式增加行数并减少处理时间)
方法2)连续存储每个学生一年的考勤数据的序列化或JSON格式的行(这将增加每天更新出勤率并减少数据库大小的处理时间)
答案 0 :(得分:9)
首先我认为你很困惑,行数会增加线性而不是指数,这是一个很大的差异。
第二个100k对于数据库来说什么都不是。即使你存储的365天只有3600万,我也会在一周内完成,
JSON中的第三个商店可能会使将来的查询变得复杂。
所以我建议采用方法1
使用适当的索引,设计和快速硬盘,数据库可以处理数十亿条记录。
此外,您可以考虑将历史数据保存在不同的架构中,以便当前数据更快一点,但这只是一个小调整