/ / Wskaźnik indeksu MySQL dziesiętnego - mysql

Znak indeksu mySQL dziesiętnego - mysql

Czy istnieje skuteczny sposób indeksowania znaku kolumny DECIMAL za pomocą MySQL (InnoDB)?

Mam zapytanie o warunek where amount > 0 (i na odwrót) i zastanawiam się, czy istnieje jakiś wymyślny sposób na przyspieszenie. W ten sam sposób, w jaki indeksowanie pierwszego znaku ciągu może przyspieszyć takie zapytanie select distinct left(some_string_column, 1).

Odpowiedzi:

1 dla odpowiedzi № 1

Indeksowanie kolumny dziesiętnej pomoże MySQL zwrócić wynik tam, gdzie column > 0.

  CREATE INDEX signindex ON table(deccolumn);

Poza tym, aby umożliwić MySQL efektywne używanie indeksów i unikanie używania funkcji w where, możesz dodać nową kolumnę, która ma wstępnie obliczone dane i indeksować tę nową kolumnę

 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;