mysql - 在 MySQL 中处理大量数据的有效方法

标签 mysql sql database

我有一个场景和两个实现它的选项。哪个效率更高?

我正在使用 mySQL 来存储学生的出勤率(大约 1 亿)。然后使用此出勤数据根据用户的选择绘制图表和结果。

方法1)将学生每天的出勤数据存储在新行中(这将以指数方式增加行数并减少处理时间)

方法.2)连续存储每个学生一年的出勤数据的序列化或 JSON 格式行(这将增加每天更新出勤时的处理时间并减少数据库大小)

最佳答案

首先我觉得你很困惑,行数会线性增加而不是指数增加,这是一个很大的区别。

第二个 100k 对于数据库来说不算什么。即使你存储 365 天也只有 3600 万,我一个星期就有,

JSON 中的第三个存储可能会使将来的查询复杂化。

所以我建议采用方法 1

使用适当的索引、设计和快速 HDD,数据库可以处理数十亿条记录。

您也可以考虑将历史数据保存在不同的模式中,以便当前数据更快一点,但这只是一个小的调整

关于mysql - 在 MySQL 中处理大量数据的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35629752/

相关文章:

mysql - 使用 group by 获取值的总和

sql - 导入文件到表错误: Failure 2673

MySQL:标签和搜索

MySQL创建数据库的权限

javascript - 如何通过单击按钮将数据库数据插入文本区域字段

php - 我可以运行单个 SELECT 而不是两个嵌套的 SELECT 来链接两个表,省略重复项,并在它们匹配时返回值吗? MySQL/PHP

php - 如果 userID 具有自动增量属性,如何更新数据库行

php - 如何使用 jQuery 和 PHP 动态显示 MySQL 数据?

c# - 使用 Entity Framework 选择单行。 Entity Framework 没有生成sql语句吧?

MySQL 连接返回的行数多于预期的行数