最初的 SQL 如下,以 group by 方式取得欄位總和:
select ... sum(aField) ... from ... where ... group by ... ;
當資料成千上萬筆後,效能就慢下來了。
因為需求是要取得加總的值,如果資料不存在或加總為零,則視為零,在這樣的前提下,可以在 where 加上必須大於零的條件(或小於零的狀況)。
select ... sum(aField) ... from ... where ... and aField > 0 ... group by ... ;
如果資料庫中大多數的值為空或為零時,這樣的修正可以大大改進效能,改進的幅度視值為空或為零的比例而定。
沒有留言:
張貼留言