Na podobném OR nelze použít index. zkuste toto:
SELECT * FROM table WHERE Due_Amount > 0
UNION ALL
SELECT * FROM table Bounced_Due_Amount > 0
--use "UNION" if Due_Amount and Bounced_Due_Amount could both >0 at any one time
mít index na Due_Amount a další na Bounced_Due_Amount.
Možná by bylo lepší předělat váš stůl. Aniž bych znal vaši obchodní logiku nebo tabulku, budu hádat, že byste mohli mít sloupec „Odražený“ Y/N nebo 1/0 char/bit a pouze sloupec „Due_Amount“. Přidejte index k této "Due_Amount" a dotaz by byl:
SELECT * FROM table WHERE Due_Amount > 0
stále můžete rozlišovat mezi řádkem odraženým nebo ne. Toto nebude fungovat, pokud potřebujete mít současně vrácenou i nevrácenou dlužnou částku.