可能的Web应用程序数据库性能问题


Possible Web App Database Performance Issue

我正在为健身房的私人教练开发一款应用程序,用于跟踪客户的锻炼情况。它的工作方式基本上分为两组。

有一些练习,非常简单,只有名称、描述、组数、次数和重量。然后是项目,这是教练分配给客户的一组练习。

一旦培训师分配了一个项目,他就会选择一个开始和结束的日期,这就是显示给客户的结果。假设教练从4月8日到4月13日分配了a, B, C练习。这样做的目的是让客户在每天的锻炼中做个标记,跟踪他们做了什么。所以他们可能只在4月9日做A和C练习,但在4月10日做所有3个练习。

我遇到的问题是,这意味着它必须为每个练习写一行,每天,为每个客户,当教练/客户数量增加时,这可能会增加很多行。

与我一起工作的开发人员担心这可能会导致性能问题,但长话短说,他们也很有可能编造问题来收取更多的时间/小时。

他们问我是否有解决办法,所以我问了几个朋友,他们似乎认为这不会引起问题。

所以,是的,一个非常冗长的描述,如果你认为这样的东西会成为一个web应用程序的问题。

OK。首先,我把这种类型的问题称为"有就好",因为如果你最终遇到了这个问题(假设你对服务的使用收费),你就已经赢了!

现代关系数据库,通过适当的索引,可以毫无问题地处理数百万行数据。我怀疑你的开发者在欺骗你,或者不知道他们在做什么。此外,任何领域的专业人士都不应该向外行人寻求解决方案。我会这样做:
1)让他们列出他们计划使用的查询,表结构和任何索引。把这些贴在这里,别人很容易就能指出他们所做的任何明显的缺陷
2)让他们用测试行填充表,达到你认为高的数量。让他们分析他们的查询。如果他们给你添麻烦,那就走开。

不,您可以轻松处理100k的行。

数据库模式必须设计良好,所有表必须正确索引。使用InnoDB作为存储引擎是一个不错的选择,因为它支持外键,可以省去一些维护表完整性的麻烦。如果一个客户端被删除,那么他的所有练习都可能被删除。

在所有页面上实现分页,以避免显示过多的行