/ / Czy tabela dwóch pól (oba int) potrzebuje indeksu? - mysql, indeksowanie

Czy dwa tabele pól (oba int) wymagają indeksu? - mysql, indeksowanie

Mam tabelę, która ma tylko dwa pola, id1 i i2.

Oba są identyfikatorami z innych tabel i są int (10).

Czy powinienem mieć indeks w tej tabeli?

Edycja: Myślę, że ta tabela składa się z dwóch prostych typów danych ... czy MySQL zapytałby nieindeksowane dane mniej efektywnie niż dane indeksowane?

Tabela, o której mowa, będzie miała więcej odczytów niż zapisów i nie będzie bardzo często pytana, więc indeks byłby w porządku.

Odpowiedzi:

0 dla odpowiedzi № 1

Jeśli jest to duży stół (tj., składający się z wielu wierszy) dobrym pomysłem może być indeks kolumn, który będzie używany jako część zapytania. Ponadto, jeśli tabela będzie aktualizowana bardzo rzadko i używana bardzo często jako tabela relatora, jeden lub więcej indeksów może znacznie przyspieszyć łączenia związane z tabelą.

Fakt, że dwie kolumny w tabeli odnoszą się do kluczy podstawowych, nie eliminuje potrzeby indeksowania. Rozważ wspólny scenariusz łączenia z tabelą relatora, taki jak:

Tabela 1 JOIN RelatorTable JOIN Tabela 2

Dobrym pomysłem może być utworzenie indeksu dla RelatorTable na kluczu obcym w tej tabeli, który odnosi się do klucza podstawowego z Tabeli 1. Może to przyspieszyć przyłączenia, szczególnie jeśli RelatorTable jest duży.


-2 dla odpowiedzi nr 2

Indeks w bazach danych SQL jest podobny do tych, które Tymieć w książkach, zamiast przeszukiwać zawartość książki, aby znaleźć to, czego szukasz, zamiast tego korzystasz z indeksu, a następnie przeskakujesz na dokładną stronę. Ale w twoim przypadku twoja tabela nie zawiera danych, tylko odniesienia do danych przechowywanych w innych tabelach, więc osobiście tak naprawdę nie widzę potrzeby indeksowania. W tym przypadku pola pola id mogą po prostu funkcjonować jako indeksy .