Skip to content

Latest commit

 

History

History
44 lines (27 loc) · 1.64 KB

File metadata and controls

44 lines (27 loc) · 1.64 KB

Projektowanie i implementacja zaawansowanych aplikacji PHP

Database performance

Zadanie

Dana jest tabela transactions o następującej strukturze:

  • identyfikator transakcji, licza całkowita, auto-increment, klucz główny
  • identyfikator punktu sprzedaży, liczba całkowita
  • data i czas transakcji, (daty z zakresu kilku lub kilkunastu lat)
  • kwota transakcji, liczba zmienno przecinkowa, nieujemna
  • tytuł transakcji, niepusty ciąg znaków

Wykorzystując wybraną przez Ciebie bazę (MySQL lub PostgreSQL) napisz zapytanie tworzące powyższą tabelę, a następnie:

  • wykorzystując Alice, generator danych fixture, przygotuj skrypt PHP data-gen.php wstawiający zadaną liczbę rekordów do tabeli, liczba ta będzie podawana jako parametr wywołania programu
  • przygotuj tabelę transactions_partitioned, gdzie dane zostaną spartycjonowane na X partycji względem daty transakcji
    • dobierz właściwy dla wygenerowanych danych rozmiar partycji, np. miesiąc, kwartał, rok, dekada
  • wykorzystując polecenie EXPLAIN ... oraz dokumentację (link poniżej), przeanalizuj plan wykonania zapytań, zapisz je do pliku tekstowego:
    • SELECT id FROM transactions WHERE created >= '...''
    • SELECT * FROM transactions WHERE created >= '...''

Przykład

Wywołanie programu:

php data-gen.php 10000

Informacje pomocnicze

Uwagi

Program będzie uruchamiany z lini poleceń.