🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82903

Re: Co wybrac - Identity czy sekwencje

#82903
From: zpksoft
Date: Tue, 20 Feb 2018 19:05
41 lines
5133 bytes
W dniu wtorek, 20 lutego 2018 14:09:20 UTC+1 użytkownik Roman Tyczka napisał:
> On Tue, 20 Feb 2018 02:30:39 -0800 (PST), zpksoft wrote:
> 
> >>>> Początkowo, właściwie dla prób wykorzystywałem GUID. Ten brak sekwencyjności nie bardzo mi przeszkadzał bo user pyta zwykle o różną kolejność danych.
> >>> Skoro tak piszesz, to chyba nie do końca rozumiesz jak działa baza 
> >>> relacyjna.
> >>> 
> >>>> Chciałem zbudować uniwersalny ID łańcuchowy w którym zakodowany byłby czas i losowość. Udało mi się opracować identyfikator 12 znakowy np. wygenerowany w tym momencie: "1OeS9r2JykUj". Mogę z niego odczytać czas powstania z dokładnością do dwóch milisekund. Czas zawarty jest w członie "1OeS9r". Stosuję te identyfikatory mniej więcej od czerwca 2005 roku i jeszcze nigdy w żadnej bazie nie miałem błędu powstania dwóch takich samych identyfikatorów.
> >>> Unikalność to nie problem, ale co z sekwencyjnością?
> >> 
> >> Tak z ciekawości... po co sekwencyjność w PK? PK ma za zadanie gwarantować
> >> unikalność i to jest jego fundamentalna cecha. Baza i tak jak potrzeba to
> >> ma jakieś kolumny z timestampem czy innym kluczem trzymającym sekwencyjność
> >> w jakimś kontekście typu data urodzenia, data sprzedaży, numer kolejny
> >> dokumentu sprzedaży itp. Po co więc tak bardzo forsujesz konieczność
> >> posiadania sekwencyjności w PK? 
> > 
> > Owa sekwencyjność jest moim zdaniem przereklamowana. 
> > Nawet jeśli pole typu integer stanowi indeks unikalny to wcale nie oznacza, że nie możemy wrzucić do bazy dane w kolejności 1, 5, 4, 7, 3. 
> > Najważniejsza jest unikalność.
> > To nie określone pole jest indeksem tylko dla określonego pola możemy zdefiniować indeks. Oznacza to tyle, że baza oprócz naszej kolumny w tabeli przechowuje oddzielnie również swój porządek.
> > Najłatwiej przekonać się o tym wywołując select na zwykłej kolumnie łańcuchowej.
> > Baza będzie szukać długo.
> > Jeśli nałożymy indeks na tę kolumnę to szukanie będzie błyskawiczne, niezależnie od tego czy dane w tej kolumnie będą sekwencyjne.
> 
> No jednak nie do końca. Poczytaj to co wloochacz zalinkował.
> I to ma jednak sens. Jeśli kolumna ma wartości sekwencyjne to indeks będzie
> dużo skuteczniej zbudowany i mniej odczytów będzie potrzebnych by go
> przeskanować. Nawet użycie algorytmu typu b+tree nie zniweluje zupełnie
> konieczności większej liczby odczytów indeksu niż wtedy, gdy jest on
> sekwencyjny (tu nawet prostackie wyszukiwanie binarne będzie szybkie).
> 
> -- 
> pozdrawiam
> Roman Tyczka

Poczytałem. Jednak nie ekscytował bym się zbytnio tymi publikacjami. Szczególnie w jednym autor sprawiał wrażenie że nie bardzo rozumie co się dzieje jeżeli utworzymy indeks na kolumnie tekstowej. Ale to tylko moje zdanie. 
Pracuję od lat prawie wyłącznie na indeksach łańcuchowych więc wiem jaka jest sprawność bazy, szybkość złożonych zapytań.
Naprawdę nie ma się czego bać.

Paweł
Technical Details
Message-ID: <96c3df46-09f8-4da9-a007-9639f84782af@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!border1.nntp.ams1.giganews.com!nntp.giganews.com!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!o66no1943685ita.0!news-out.google.com!s63ni5805itb.0!nntp.google.com!o66no1943680ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <b103c4b1-8620-403a-a902-5e4ecd5fe355@googlegroups.com> <b32fab82-19c1-452a-a5c8-45943fa76db7@googlegroups.com> <5a8561ba$0$664$65785112@news.neostrada.pl> <24ef9b49-567a-44b5-acbd-44352e2701d0@googlegroups.com> <d84fb96f-7111-4b1a-b794-e856be8cca9e@googlegroups.com> <ecf4861c-5c5c-4ea8-85c6-2a9277b41a25@googlegroups.com> <97820f04-20f3-4421-a734-bb41bec12300@googlegroups.com> <5a87f6e0$0$559$65785112@news.neostrada.pl> <ca7d63b4-f772-4935-b7f8-2f6cf13405f0@googlegroups.com> <5a8afcf3$0$589$65785112@news.neostrada.pl> <11zhaiuujxyq.dlg@tyczka.com> <cba5c170-8839-4842-aca8-8ca183cb1202@googlegroups.com> <14fo87b9iec37$.dlg@tyczka.com>

Show Full Headers
Complete Article Headers
X-Received: by 10.107.53.71 with SMTP id c68mr383375ioa.117.1519153541839;        Tue, 20 Feb 2018 11:05:41 -0800 (PST)
X-Received: by 10.157.112.141 with SMTP id l13mr28265otj.1.1519153541554; Tue, 20 Feb 2018 11:05:41 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!border1.nntp.ams1.giganews.com!nntp.giganews.com!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!o66no1943685ita.0!news-out.google.com!s63ni5805itb.0!nntp.google.com!o66no1943680ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.delphi.bazy-danych
Date: Tue, 20 Feb 2018 11:05:41 -0800 (PST)
In-Reply-To: <14fo87b9iec37$.dlg@tyczka.com>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=217.99.107.33; posting-account=8ND_mgoAAAD5J9y9fnaTB1Kcu7xKWk7Q
NNTP-Posting-Host: 217.99.107.33
References: <b103c4b1-8620-403a-a902-5e4ecd5fe355@googlegroups.com> <b32fab82-19c1-452a-a5c8-45943fa76db7@googlegroups.com> <5a8561ba$0$664$65785112@news.neostrada.pl> <24ef9b49-567a-44b5-acbd-44352e2701d0@googlegroups.com> <d84fb96f-7111-4b1a-b794-e856be8cca9e@googlegroups.com> <ecf4861c-5c5c-4ea8-85c6-2a9277b41a25@googlegroups.com> <97820f04-20f3-4421-a734-bb41bec12300@googlegroups.com> <5a87f6e0$0$559$65785112@news.neostrada.pl> <ca7d63b4-f772-4935-b7f8-2f6cf13405f0@googlegroups.com> <5a8afcf3$0$589$65785112@news.neostrada.pl> <11zhaiuujxyq.dlg@tyczka.com> <cba5c170-8839-4842-aca8-8ca183cb1202@googlegroups.com> <14fo87b9iec37$.dlg@tyczka.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <96c3df46-09f8-4da9-a007-9639f84782af@googlegroups.com>
Subject: Re: Co wybrac - Identity czy sekwencje
From: zpksoft <zpksoft@op.pl>
Injection-Date: Tue, 20 Feb 2018 19:05:41 +0000
X-Received-Bytes: 5532
X-Received-Body-CRC: 1187199892
Lines: 75
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit