我有一個項目,用于計算儀表板的 MySQL 表中特定條件的實例。一開始很簡單,但在幾次“你可以添加...”請求之后,我的程序中出現了多達 86 個不同的查詢。我預計未來會有更多“您可以添加...”請求嗎?為了提高效率,將數據批量查詢到 Java 然后在那里進行排序/計數,還是繼續進行單獨查詢會更好/更快嗎?該表很小,現在 <300 行,而且我看不到它會超過 900 行(如果這很重要的話)。
1 回答

蝴蝶不菲
TA貢獻1810條經驗 獲得超4個贊
所有查詢都是“SELECT count(*) where [條件 A] 和 [條件 B] 和 [條件 C]”的變體。它設置為每 5 分鐘運行一次。
針對此類查詢的提示:表達式為 1 或 0 的 SUM() 與表達式為 true 的行的 COUNT() 相同。這是一個方便的 MySQL 特定技巧(其他 SQL 實現不會將 true/false 視為與 1/0 相同)。
SELECT
SUM(<condition A>) AS count_A,
SUM(<condition B>) AS count_B,
SUM(<condition C>) AS count_C,
...
FROM mytable
這使您可以運行一個查詢來掃描表一次,同時“計算”具有不同條件的行。
一旦您了解了 SUM() 的技巧,它就非常簡單,并且可以輕松向查詢添加更多列以獲取其他類型的計數。
添加回答
舉報
0/150
提交
取消