我正在为工人创建一个值班管理系统,数据库将包含以下列
这个系统需要知道在给定的时间内有多少员工在工作。我目前正在使用mysqli,它似乎很慢,因为表数据正在增加。我正在寻找一个合适的服务,可以处理每天500000条记录插入和搜索内的职责开始和职责结束索引。
au9on6nz1#
在大型表中,开始-结束范围很难优化。也许解决这种情况的最好办法是做一些非常糟糕的事情——取消约会(是的,这一次两个错误可能会变成一个正确。)
ID | STAFF_ID | DUTY_ID | date | START_time | END_time
一些问题:如果轮班时间是午夜,那就排两行。在上有索引 date ,或者至少从 date . 即使查询必须扫描当天的所有条目,但至少比扫描整个表要少得多(所有其他“显而易见的解决方案”都不如扫描半张table。)如果您想进一步讨论和辩论,请提供 SELECT 基于您的“模式”或我的“模式”的语句。不要担心性能;我们可以讨论如何改进它们。
date
SELECT
1条答案
按热度按时间au9on6nz1#
在大型表中,开始-结束范围很难优化。
也许解决这种情况的最好办法是做一些非常糟糕的事情——取消约会(是的,这一次两个错误可能会变成一个正确。)
一些问题:
如果轮班时间是午夜,那就排两行。
在上有索引
date
,或者至少从date
. 即使查询必须扫描当天的所有条目,但至少比扫描整个表要少得多(所有其他“显而易见的解决方案”都不如扫描半张table。)如果您想进一步讨论和辩论,请提供
SELECT
基于您的“模式”或我的“模式”的语句。不要担心性能;我们可以讨论如何改进它们。