Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #32140
| 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> |
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
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