php - 如何为大型历史数据构建mysql表?
问题描述
我目前正在开发一个 php 网站项目,其中包含 10,000 个客户的月度数据。
客户必须登录才能查看他/她的个人历史月度采购和销售数据。系统管理员必须在每个月底更新每个客户的每月采购和销售情况。
登录后,客户可以查看过去 120 个月的历史月度采购和销售数据。每个客户的历史数据都存储在mysql数据库中。以下是我的问题:
(1) 谁能帮助我如何构建我的数据库表,以便每个客户在登录后都可以查看他/她的历史数据?
(2) 处理10000个客户,有多年历史月度数据,会不会有表格行列数的限制?
解决方案
你离极限还差得很远。“数百万”行——即中等大小。“十亿”是它变得令人兴奋的时候。另一方面,性能可能是一个问题。
你会删除“旧”数据吗?如果是这样,我们需要谈谈分区。
最好让
PRIMARY KEY
主表的以 开头customer_id, date
。这将解决许多性能问题。至于要拥有哪些表,请考虑您拥有哪些“实体”:
customer
和transaction
,但仅此而已。(我不明白为什么“销售”和“购买”是不同的。)当您开发查询时,您会发现其他问题,例如用于处理具有多个电话(固定电话、手机、传真、家庭、工作等)。“在每个月末”——为什么不存储每笔交易发生的时候呢?
推荐阅读
- java - done() 函数返回 null ParseObject
- unit-testing - 无法在 Junit 4 中导入 @WithAnonymousUser
- javascript - jquery如何获取ID和Title
- ios - 一般问题,有什么建议吗?
- html - 使滚动成为元素的最佳方法
- twitter-bootstrap - Bootstrap 3 当列高增加时推动整行
- c++ - 任务:需要 OpenMP 指令名称
- angular - 如何仅将插入符号添加到Angular 4中的选定列
- android - 使用我的android应用程序在magento 2中完成的rest api将数据发布到mysql数据库?
- python - 如何在 Python 中使用 XPath 选择兄弟节点的子节点?