LMS - LAN Management System 1.11-git
Poprzedni | Rozdział 7. Dla dociekliwych | Następny

# 7.6. Ograniczenia

Każdy system ma ograniczenia. Pewne wynikają z użytego silnika SQL (DBMS) inne zaś z założeń [prawie] świadomie podjętych przez developerów. Nasz system takowe posiada:

## 7.6.1. Wynikające z naszego projektu

Ilość pieniędzy (tabela 'cash'). Pieniążki (od lms-1.1) przechowywaliśmy jako 32 bitową liczbę całkowitą i w związku z tym za 8 lat mogliście nas nie lubić posiadając około 5000 użytkowników. Aktualnie (od lms-1.1.7 Hathor) używamy bardziej odpowiedniego typu danych [decimal (9.2), 2 miejsca znaczące po przecinku, a w sumie 9 miejsc na całą liczbę]. Maksymalna wartość to 9'999'999.99 (dotyczy sumy wszystkich operacji finansowych!). Procedury konwertujące liczby na słowa są przygotowane na kwoty tak duże jak 10^18.

## 7.6.2. Wynikające z używanego DBMS

- MySQL

  - Rozmiar bazy danych:

    Jak mówi dokumentacja do MySQL'a (rozdział: Table size, paragraf "How Big Can MySQL Tables Be?"), MySQL wersja 3.22 był ograniczony do 4 GB na tabelkę. W wersji zaś 3.23 zostało to podniesione do 8 milionów terabajtów (czyli 2^63 bajtów). Jednak warto zauważyć że różne systemy operacyjne mają limity nakładane przez systemy plików, najczęściej jest to 2 lub 4 GB.

  - Ilość rekordów:

    Prawdziwe informacje na temat limitów uzyskamy dopiero po wydaniu polecenia: (w interpreterze poleceń mysql)

        mysql> show table status;

        ...| Avg_row_length | Data_length | Max_data_length | Index_length |
        ...|             44 |       24136 |      4294967295 |        19456 |

    Zauważymy że miejsca wystarczy na około 175 000 razy tyle ile mamy aktualnie wpisów w tabelce. (czyt.: możesz spać spokojnie, chyba że planujesz posiadanie ponad 100000 użytkowników :-)

- PostgreSQL

  - Rozmiar bazy danych:

    PostgreSQL zapisuje dane w porcjach po 8 kB. Liczba tych bloków jest ograniczona do 32-bitowej liczby całkowitej ze znakiem, dając maksymalną wielkość tabeli wynoszącą 16 terabajtów. Z uwagi na ograniczenia systemów operacyjnych dane przechowywane są w wielu plikach o wielkości 1 GB każdy.

  - Ilość rekordów:

    PostgreSQL nie narzuca ograniczenia na liczbę wierszy w dowolnej tabeli.

Poprzedni | Spis treści | Następny
Poziomy dostępu | Początek rozdziału | Dodatki