Rozmiar bazy firebird a ilość danych

0

Witam

Niedawno pisałem program obsługujący małą bazę we Firebird. Nasunęło mi się jednak pytanie nt. rozmiaru rekordu dodawanego do bazy. Załóżmy że tworzę tablicę, suma rozmiarów pół pojedynczego rekordu w tej konkretnej bazie łącznie daje 43 Bajty.

Gdy dodaję do tej bazy rekord, gdzie nie wszystkie pola będą uzupełnione, czy rozmiar bazy wzrośnie tylko o te pola, które łącznie będą miały rozmiar 8 Bajtów, które będą zapełnione danymi, czy o całkowitą wielkość rekordu, czyli 43 Bajty?

0

Najlepiej by było gdybyś dodał taki rekord i sprawdził o bajtów plik jest cięższy.

0

mto9: Twój sposób prawie na pewno nie zadziała, baza danych to nie jest proste archiwum z danymi.

marcin82w: najważniejsza sprawa to to, czy w tej konkretnej tabeli długość rekordu jest stała, czy nie. Jeżeli zawiera pola typu varchar, być może null (nie wiem jak to jest w firebirdzie) to ta długość nie jest stała. Poza tym, nawet jeżeli ta wielkość jest stała, to i tak wielkość bazy wzrośnie (zazwyczaj) o trochę więcej (indeksy itp.). Jednak w związku z tym, że silniki baz danych nie są zoptymalizowane pod absolutnie minimalny rozmiar plików, a pod szybkość, to rozmiar bazy będzie rósł jakby niezależnie od konkretnych dodawanych rekordów.

0

Baza rośnie stronami (Sybase, MS SQL) a nie o jeden rekord.
Do tego dochodzi taki parametr jak wypełnienie strony, który mówi ni mniej ni więcej ile miejsca trzeba zostawić na stronie niewykorzystanego.

Tak więc prawie zawsze suma rozmiaru pól rekordów < wielkość pliku bazy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0