多日期时间列索引的最佳数据库解决方案

时间:2018-12-04 18:07:03

标签: mysql database mysqli database-design amazon-dynamodb

我正在为工人创建职责管理系统,该数据库将包含以下列


ID | STAFF_ID | DUTY_ID | DUTY_START | DUTY_END

要求该系统知道在给定时间内有多少员工在工作。

我当前正在使用mysqli,随着表数据的增加,它似乎很慢。

我正在寻找合适的服务,该服务每天可以处理DUTY_START和DUTY_END索引中的500,000条记录并进行搜索。

1 个答案:

答案 0 :(得分:0)

在大型表中进行优化时,开始到结束范围很麻烦。

也许对于这种情况,最好的解决方案是做一些非常糟糕的事情-分日期。 (是的2次错误可能在这次是对的。)

ID | STAFF_ID | DUTY_ID | date | START_time | END_time

一些问题:

  • 如果变化发生在午夜,请排2行。
  • date上有一个索引,或者至少从date开始。然后,即使查询必须扫描所讨论的日期的所有条目,至少比扫描整个表还要很多。 (所有其他“显而易见的解决方案”都没有扫描表的一半)。

如果您想进一步讨论和辩论,请根据您的“模式”或我的“ SELECT”陈述提供。不用担心性能;我们可以讨论如何改进它们。