gpt4 book ai didi

mysql - 计算 X 天内在不同表中输入了多少行的最有效方法?

转载 作者:行者123 更新时间:2023-11-30 01:27:08 25 4
gpt4 key购买 nike

给定多个表,对包含 where 子句的表中的行计数进行轮询的最佳方法是什么?我想立即执行此操作,以便可以将其插入到包含每日行数记录的表中。

tableA - 满足条件 1 的所有行的计数,特定列值 X 从 tableA 中选择 count(*),其中 col1 = X

tableA - 满足条件 2 的所有行的计数,特定列值 Y 从 tableA 中选择 count(*),其中 col2 = Y

这两个很容易组合成:

select
(select count(*) from tableA where col1 = X) as 'X count',
(select count(*) from tableA where col2 = Y) as 'Y count'

但现在我想添加:tableB - 在最后指定的时间间隔内创建的所有行的计数

select count(*) from tableB where dateCreated >= date_sub(curdate(), interval 1 day) where col3 = Z;

这给了我:

select
(select count(*) from tableA where col1 = X) as 'X count',
(select count(*) from tableA where col2 = Y) as 'Y count',
(select count(*) from tableB where dateCreated >= date_sub(curdate(), interval 1 day)) as 'Z count';

虽然它似乎运行得很慢,在这种情况下有没有更有效的方法来计算行数?

最佳答案

您的查询看起来不错,但您应该对这些列建立索引。为此,请从 the documentation :

CREATE INDEX idx_col1 ON tableA (col1);
CREATE INDEX idx_col2 ON tableA (col2);
CREATE INDEX idx_dateCreated on tableB (dateCreated);

关于mysql - 计算 X 天内在不同表中输入了多少行的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17865143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com