Existuje účinný spôsob, ako index indexu stĺpca DECIMAL s MySQL (InnoDB)?
Otázka s touto podmienkou where amount > 0
(a naopak) a zaujímam sa, či je to fantazijný spôsob, ako to urobiť rýchlo. Rovnakým spôsobom, ako indexovanie prvého znaku reťazca môže urýchliť dopyt, napríklad select distinct left(some_string_column, 1)
.
odpovede:
1 pre odpoveď č. 1Indexovanie desiatkového stĺpca pomôže MySQL vrátiť výsledok kde column > 0
.
CREATE INDEX signindex ON table(deccolumn);
Okrem toho, aby mohla MySQL efektívne používať indexy a vyhnúť sa používaniu funkcie where
, môžete pridať nový stĺpec s predbežne vypočítanými údajmi a indexovať nový stĺpec
ALTER TABLE table ADD leftchar char(1);
UPDATE table SET leftchar=left(some_string_column, 1);
CREATE INDEX charindex ON table(leftchar);
SELECT DISTINCT leftchar FROM table;