Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #32140

Re: Projektowanie bazki danych

From Borneq <borneq@antyspam.hidden.pl>
Newsgroups pl.comp.programming
Subject Re: Projektowanie bazki danych
Date 2018-12-23 13:49 +0100
Organization ATMAN - ATM S.A.
Message-ID <pvo08p$f3f$1@node1.news.atman.pl> (permalink)
References <pvlfmg$5a5$1@node2.news.atman.pl> <ee2f6f10-22b4-4841-b08b-cf721b3afa64@googlegroups.com>

Show all headers | View raw


W dniu 22.12.2018 o 21:09, szykcech@gmail.com pisze:
> A słyszał Ty o "wyszukiwaniu zewnętrznym" i B-drzewach?!? W starej książce "Algorytmy w C++" Roberta Sedgewicka wydanej w Polsze 1999 przez wydawnictwo RM jest na końcu rozdział (16) o tym.

Właśnie czytam o B-drzewch w książce Moliny - najciekawszy rozdział.
Indeks może zmieścić się w pamięci cały, tym niemniej co gdy będziemy 
chcieli wykonać
select * from table where warunek_jakis limit 1000
?
Będziemy mieli 1000 wskaźników na rekordy, które mogą być porozrzucane.

Jak zrobić B-drzewo:
otóż mam blok pamięci w a nim kolejno:
key0,ptr0,key1,ptr1,key2,ptr2,...keyn,ptrn,
jeśli wartość będzie pomiędzy key1 a key2 to szukamy bloku ptr1

szczegóły implementacyjne:
optymalną wielkością dla bloku będzie 4 kiB, jest to wielkość która 
pokrywa się z wielkością sektora dyskowego czy 2^n sektorów, klastrem 
dyskowym oraz z wielkością wymiany pamięć-dysk Intela.
Wielkość wskaźników to 8 bajtów, klucze w najprostszej postaci to też 8 
bajtów (mógłby być przypadek, że klucz to pole char(40), można się zająć 
tym później)
4096 bajtowy blok miałby 8 bajtowy nagłówek, reszta podzielona była by 
na sloty (klucz,pointer). Wynika że maksymalnie tych slotów mogło by być 
255, czyli dobrze się składa, bo ilość slotów zapiszemy w 1 bajcie w 
nagłówku.
Teraz należy przy dodawaniu pomyśleć, aby b-drzewo było mniej więcej 
wyważone.

Back to pl.comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Projektowanie bazki danych Borneq <borneq@antyspam.hidden.pl> - 2018-12-22 14:54 +0100
  Re: Projektowanie bazki danych szykcech@gmail.com - 2018-12-22 12:09 -0800
    Re: Projektowanie bazki danych Borneq <borneq@antyspam.hidden.pl> - 2018-12-23 13:49 +0100
      Re: Projektowanie bazki danych Borneq <borneq@antyspam.hidden.pl> - 2018-12-23 17:09 +0100
        Re: Projektowanie bazki danych Borneq <borneq@antyspam.hidden.pl> - 2018-12-24 14:09 +0100
          Re: Projektowanie bazki danych Borneq <borneq@antyspam.hidden.pl> - 2018-12-24 19:16 +0100

csiph-web