Indeks w szybko zmieniającym się kolumnie

0

Pytanie

  1. Czy warto dodawać pocztowy w szybko zmieniającym się kolumna, taka jak "lastUpdatedOn"?
  2. Jak obliczyć kompromis ?
  3. Czy może ktoś podać mi na oficjalną dokumentację o tym, kiedy i jak MySQL wykonuje poprawki podczas wstawiania wierszy i aktualizacji indeksowanej kolumny.
indexing mysql sql
2021-11-24 06:35:34
1

Najlepsza odpowiedź

0

Obecność indeksu zawierającego "szybko zmieniający się kolumna", jest kompromisem.

Jeden UPDATE należy usunąć jeden wpis w indeksie i dodać nowy wpis w innym miejscu indeksu.

Z drugiej strony, indeks może znacznie przyspieszyć z indeksu.

Podaj konkretny przykład, abyśmy mogli kontynuować dyskusję kompromisów.

Regularne, nie-UNIQUE indeksy (w przeciwieństwie do FULLTEXT i SPATIAL) są obsługiwane w taki sposób:

W puli buforów jest bufor zmian" (qv), który obsługuje aktualizacji indeksu, które nie zostały jeszcze zapisane na dysku.

Kiedy a DELETE w tym przypadku bufor zmian dodaje się zapis wskazujący, że wpis do indeksu należy usunąć.

Dla UPDATE być możetrzeba będzie dokonać w CBA dwa wpisy.

Kiedy a SELECT używa się do tego indeksu, sprawdza jak CB, jak i prawdziwe, na dysku, BTree dla indeksu. To BTree jest buforowany (blok za blokiem) w puli buforów. (Blok o wymiarach 16 KB może zawierać setki wpisów.)

CB jest resetowany na dysku "w tle" lub "w miarę potrzeby". Obejmuje to wyjmowanie bloku indeksu (jeśli jeszcze nie buforowane), aktualizacja niektórych rekordów (usuwanie i/lub dodawanie) i nagrywanie z powrotem na dysk. Zarówno odczyt, jak i zapis w pamięci podręcznej w puli buforów, więc każdy lub żaden z nich nie może być fizycznym wejściem-wyjściem.

MySQL nie "przebudowuje" zwykły indeks ("переиндексирует"), jak tylko za pomocą określonych ALTERs lub OPTIMIZE. Czyli wszystkie zmiany są wprowadzane na bieżąco. Akcja CBA w sposób przejrzysty dla użytkownika.

2021-11-24 22:29:11

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................