Niektóre serwery b-tree/języki programowania nadal używane dzisiaj do przechowywania danych używają plików płaskich ascii o stałej lub zmiennej długości. Kiedy nowy plik danych/wiersz zostanie dodany do pliku (tabela), rekord jest (1) dołączany na końcu pliku (lub zastępuje usunięty rekord) i (2) indeksy są zrównoważone. Kiedy dane są przechowywane w ten sposób, nie musisz martwić się o wydajność systemu (o ile robi to serwer b-tree, aby zwrócić wskaźnik do pierwszego rekordu danych). Czas odpowiedzi jest osiągany tylko przez liczbę węzłów w plikach indeksowych.
Kiedy zaczynasz używać SQL, masz nadzieję, że zdasz sobie sprawę, że wydajność systemu musi być brana pod uwagę przy każdym napisaniu instrukcji SQL. Użycie instrukcji "ORDER BY" na nieindeksowanej kolumnie może doprowadzić system do kolan. Używanie indeksu klastrowego może spowodować niepotrzebne obciążenie procesora. Jest to wiek XXI i żałuję, że nie musieliśmy myśleć o wydajności systemu podczas programowania w SQL, ale wciąż to robimy.
W przypadku niektórych starszych języków programowania obowiązkowe było korzystanie z indeksu po otrzymaniu posortowanych danych. Żałuję tylko, że ten wymóg nie został jeszcze przyjęty. Mogę się tylko zastanowić, ile firm zaktualizowało swoje powolne systemy komputerowe ze względu na źle napisaną instrukcję SQL dotyczącą nieindeksowanych danych.
W ciągu 25 lat programowania nigdy nie potrzebowałem danych fizycznych przechowywanych w określonej kolejności, więc może dlatego niektórzy programiści unikają stosowania indeksów klastrowych. Trudno się zorientować, co to jest kompromis (czas przechowywania, czas wczytywania wierszy), szczególnie jeśli projektowany system może przechowywać miliony rekordów pewnego dnia.
"Zauważyłem jedną rzecz, że wszystkie klucze podstawowe są tworzone jako indeksy NIEKLUZOWANE, w odróżnieniu od klastrów" Dlaczego obserwuję coś przeciwnego? –
@ vgv8 - w celu wyjaśnienia, skrypty bazy danych, które odziedziczyłem, które jawnie ustawiają klucze, aby nie były klastrowane. – AJM
Nadal nie mogłem tego zrozumieć http://stackoverflow.com/questions/3970430/why-when-how-is-whole-clustered-index-scan-chosen-rather-than-full-table-scan, chociaż nie mogłem zrozumieć, dlaczego/kiedy mieć indeks klastrowy w ogóle –