Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Skąd wiesz, co to jest dobry indeks?

To zależy od tego, co rozumiesz przez „dobry” i „zły”. Zasadniczo musisz zdać sobie sprawę, że każdy dodany indeks zwiększy wydajność dowolnego wyszukiwania według tej kolumny (więc dodanie indeksu do kolumny „nazwisko” tabeli osoby zwiększy wydajność w zapytaniach, które mają w sobie „gdzie nazwisko =”), ale zmniejszyć wydajność zapisu w całej tabeli.

Powodem tego jest to, że gdy dodajesz lub aktualizujesz wiersz, musi on dodawać lub aktualizować zarówno samą tabelę, jak i każdy indeks, którego członkiem jest wiersz. Więc jeśli masz pięć indeksów w tabeli, każde dodanie musi być zapisane w sześciu miejscach – pięciu indeksach i tabeli – aw najgorszym przypadku aktualizacja może sięgać do sześciu miejsc.

Tworzenie indeksu jest więc działaniem równoważącym między szybkością zapytań a szybkością zapisu. W niektórych przypadkach, na przykład w datamarcie, który jest ładowany danymi tylko raz w tygodniu w ramach nocnego zadania, ale odpytywany jest tysiące razy dziennie, bardzo sensowne jest przeciążenie indeksami i maksymalne przyspieszenie zapytań. Jednak w przypadku systemów przetwarzania transakcji online chcesz spróbować znaleźć równowagę między nimi.

Krótko mówiąc, dodaj indeksy do kolumn, które są często używane w zapytaniach wybierających, ale staraj się unikać dodawania zbyt wielu, więc najpierw dodaj najczęściej używane kolumny.

Potem jest kwestia testowania obciążenia, aby zobaczyć, jak wydajność reaguje w warunkach produkcyjnych, i wielu poprawek, aby znaleźć akceptowalną równowagę.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ograniczenie zwróconego rekordu z zapytania SQL w Oracle

  2. Menedżer współbieżny Oracle

  3. Wykrywanie cykli z rekurencyjnym faktoringiem podzapytań

  4. Tylko kopia zapasowa schematu SQL?

  5. Jak połączyć się z serwerem LDAP za pomocą node-oracledb?