Sprawdzenie ile danych zmieści się na serwerze

0

Witam !
mam pytanko, czy można w jakiś sposób określić ile danych może się zmieścić na danym serwerze? Przykładowo, czy da się określić robiąc to w najbardziej intuicyjny sposób:

  1. sprawdzić ile zajmuje obecne baza danych (komendą SELECT wywołaną z sum( data_length + index_length ))
  2. sprawdzić przy pomocy df ile miejsca jest dostępnego w katalogu /var/lib/mysql/database

podzielić - wiadomo ile razy więcej niż obecnie mamy danych się zmieści.
Jest to wystarczająca metoda, czy jest jakaś inna / lepsza ?

Z góry dzięki za pomoc : D

2

Nie sprawdzisz tego tak, bo oprócz twoich danych, jest też wiele dodatkowych danych np indexy, robią "spore" ilości dodatkowych danych.

0

Dziękuję : ) Czyli rozumiem że z powodu ze rozmiar indexów rośnie nie liniowo nie da się tego oszacować? Czy jest jakiś sposób?

2

Nie tylko indeksy. Również np. pliki tymczasowe...

1

jeśli masz w jakiejś tabli pole typu varchar(200) to dla 1000000 rekordów może to zajmować zarówno 1MB jak i 200MB w zależności jakie dane są w tym polu. A to tylko dla jednego pola. Dodatkowo jeśli masz na tym polu indeksy założone to ich rozmiar będzie tak samo zależał od danych w polu. Biorąc pod uwagę, że pola tekstowe to znaczna część tabel w bazie to może być trudne do oszacowania. Możesz przyjąć, że każde pole o zmiennym rozmiarze jest wykorzystane na maksa.

A ogólnie to dla każdej tabeli możesz zrobić tak, że bierzesz rozmiar każdego pola i mnożysz przez szacowaną ilość rekordów. Do tego bierzesz wszystkie indeksy dla danej tabeli i robisz tak samo. Tabele tymczasowe możesz przyjąć jakieś 10-20% wyliczonego rozmiaru bazy plus dane systemowe, które zależą od konkretnego silnika (ale nie powinno być więcej niż 1-5GB)

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