/ / Nadmiarowe klucze w MySQL - mysql, database, key

Nadmiarowe klucze w MySQL - mysql, database, key

Obecnie pracuje nad bazą danych MySQL, która ma kluczowe deklaracje, takie jak

KEY "id" (id),
KEY "username" (username),
KEY "user_id" (username, id)

Czy to wpływa na sposób działania naszych danych? Czy wyeliminowanie tego poprawi wydajność naszej bazy danych? Doszedłem do wniosku, że są one zbędne, ale jestem ciekawy, czy osoba, która pojawiła się przede mną, stworzyła je z jakiegokolwiek powodu.

Odpowiedzi:

0 dla odpowiedzi № 1

Dobrze o tym napisać dokumentacja MySQL:

MySQL pozwala swoim użytkownikom tworzyć kilka indeksówto może być same (zduplikowane indeksy) lub częściowo podobne (nadmiarowe indeksy) w jego struktura. Chociaż zduplikowane indeksy nie mają żadnych zalet, nie w niektórych przypadkach pomocne mogą okazać się nadmiarowe indeksy. Jednak oba mają wady. Zduplikowane i nadmiarowe indeksy spowalniają aktualizację i wstaw operacje. W rezultacie zwykle dobrze jest znaleźć i usuń je.


0 dla odpowiedzi nr 2

Zawsze eliminuję nadmiarowe indeksy i zauważam wzrost prędkości pisania bez żadnego wpływu na prędkość wysyłania zapytań.

Mogę wymyślić sytuacje, w których posiadanie nadmiarowego indeksu moc zwiększyć prędkość odczytu, ale jest mało prawdopodobne, a wzrost będzie minimalny.

Podsumowując, gorąco polecam usunięcie nadmiarowych indeksów: zwiększy to szybkość zapisu.