1. rekordy zbędne usunąć, a nowe dane pchać do nowych rekordów tworzonych ?
2. zbędne rekordy po prostu zmodyfikować wstawiając nowe dane, unikając w
ten sposób tworzenia nowych ...
a w związku z powyższym:
Czy usunięty rekord z bazy zmniejsza jej rozmiar na serwerze ?
--
Zalaczam pozdrowienia i zyczenia powodzenia
Krzysztof 'kw1618' Warszawa - Ursynow
Koleje Mazowieckie galeria http://foto.3mam.net
i zrobi porzadeczek :)
--
pozdros
icek
>> a w związku z powyższym:
>> Czy usunięty rekord z bazy zmniejsza jej rozmiar na serwerze ?
> AFAIK to po usunieciu bedziesz i tak miał nadmiar w bazie
> ale jest funkcja
> http://dev.mysql.com/doc/refman/5.0/en/optimize-table.html
>
> i zrobi porzadeczek :)
o! ciekawe, bo mi magik mówił, ze usuwam rekord... usuwa to wszystko co
trzeba wersze z tabel i zwalnia się miejsce
--
Tomasz Renik jestem
For InnoDB tables, OPTIMIZE TABLE is mapped to ALTER TABLE, which
rebuilds the table to update index statistics and free unused space in
the clustered index.
np. jeśli usunięty rekord zajmował 100 bajtów, a nowy rekord ma 150,
to nowy rekord się nie zmieści w miejscu po starym i przy dodaniu
takiego rekordu efekt będzie taki, jakby miejsce się nie zwalniało
To wszystko zależy od typu tabeli i ewentualnych parametrów bazy. W
przypadku MyISAM jeśli parametry nie stanowią inaczej, miejsce po usuniętym
wierszu zostanie efektywnie wykorzystane. Przy InnoDB jest zupełnie inaczej,
ponieważ jednostką odczytu/zapisu jest strona (domyślnie 16KB) a nie rekord.
Po usnięciu wiersza na stronie pozostanie więc wolne miejsce, którego
wykorzystanie jednak jest uwarunkowane fizyczną organizacją danych w InnoDB.
A dane organizowane są przy pomocy klucza głównego, więc wstawienie nowego
rekordu w miejsce skasowanego (lub chociaż na tę samą stronę) to sytuacja
raczej trudna a na pewno wymagająca specyficznego sposobu generowania
wartości PK.
Maciek