首页 > 解决方案 > 如何为大型历史数据构建mysql表?

问题描述

我目前正在开发一个 php 网站项目,其中包含 10,000 个客户的月度数据。

客户必须登录才能查看他/她的个人历史月度采购和销售数据。系统管理员必须在每个月底更新每个客户的每月采购和销售情况。

登录后,客户可以查看过去 120 个月的历史月度采购和销售数据。每个客户的历史数据都存储在mysql数据库中。以下是我的问题:

(1) 谁能帮助我如何构建我的数据库表,以便每个客户在登录后都可以查看他/她的历史数据?

(2) 处理10000个客户,有多年历史月度数据,会不会有表格行列数的限制?

标签: phpmysqlsqldatabase-design

解决方案


你离极限还差得很远。“数百万”行——即中等大小。“十亿”是它变得令人兴奋的时候。另一方面,性能可能是一个问题。

  • 你会删除“旧”数据吗?如果是这样,我们需要谈谈分区。

  • 最好让PRIMARY KEY主表的以 开头 customer_id, date。这将解决许多性能问题。

  • 至于要拥有哪些表,请考虑您拥有哪些“实体”: customertransaction,但仅此而已。(我不明白为什么“销售”和“购买”是不同的。)当您开发查询时,您会发现其他问题,例如用于处理具有多个电话(固定电话、手机、传真、家庭、工作等)。

  • “在每个月末”——为什么不存储每笔交易发生的时候呢?


推荐阅读