Mysql 执行「;选择WHERE WEEKDAY()=something";陈述
一个非常简单的问题。 我有一个表,它代表着超过1百万行的收据,并且必须按一周中的哪一天对它进行过滤/分组。 例如:从统计上告诉我发出更多收据的一周中的哪一天 那就是人们总共花更多钱的那个?每张收据呢 我知道怎么做,我唯一关心的是性能。 我曾考虑添加一个全新的领域“一周中的一天”,但这样我不得不修改和重新测试很多代码Mysql 执行「;选择WHERE WEEKDAY()=something";陈述,mysql,Mysql,一个非常简单的问题。 我有一个表,它代表着超过1百万行的收据,并且必须按一周中的哪一天对它进行过滤/分组。 例如:从统计上告诉我发出更多收据的一周中的哪一天 那就是人们总共花更多钱的那个?每张收据呢 我知道怎么做,我唯一关心的是性能。 我曾考虑添加一个全新的领域“一周中的一天”,但这样我不得不修改和重新测试很多代码 因此,WEEKDAY(Date_字段)比专用字段更快/相同,或者更好地返工表格?使用WEEKDAY,读取整个表格,并为每一行调用函数。 如果使用带有索引的专用字段,则只读取索引。 因
因此,WEEKDAY(Date_字段)比专用字段更快/相同,或者更好地返工表格?使用WEEKDAY,读取整个表格,并为每一行调用函数。
如果使用带有索引的专用字段,则只读取索引。
因此,性能问题非常清楚
但你描述的问题似乎只是偶尔的分析。我认为这种偶然查询的性能不应该要求对代码进行重构。对于特殊的数据钻孔查询,可以接受一些延迟 我怀疑它是否能够索引该表达式,因此它必须为所选的每一行计算它。这将是昂贵的。尽管只有14%的选择性,扫描可能比寻找非覆盖索引更快。