eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingProjektowanie bazki danych › Re: Projektowanie bazki danych
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
    OSTED!not-for-mail
    From: Borneq <b...@a...hidden.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: Projektowanie bazki danych
    Date: Sun, 23 Dec 2018 13:49:29 +0100
    Organization: ATMAN - ATM S.A.
    Lines: 28
    Message-ID: <pvo08p$f3f$1@node1.news.atman.pl>
    References: <pvlfmg$5a5$1@node2.news.atman.pl>
    <e...@g...com>
    NNTP-Posting-Host: public-gprs362084.centertel.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1545569369 15471 37.47.45.165 (23 Dec 2018 12:49:29 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Sun, 23 Dec 2018 12:49:29 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
    Thunderbird/60.3.3
    In-Reply-To: <e...@g...com>
    Content-Language: pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:213053
    [ ukryj nagłówki ]

    W dniu 22.12.2018 o 21:09, s...@g...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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: