Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ MySQL _ Duża ilość rekordów. Lepiej podzielić czy w jednej bazie ?

Napisany przez: szczalpi 15.01.2023, 11:02:55

Witam Was.
Mam pytanko do Was. Mam bazę z około 1 mln rekordów. Są to państwa i miasta wpisane w bazę.
Moje pytanie jest następujące. Czy trzymać wszystkie rekordy w bazie, czy lepiej podzielić na państwa wraz z miastami ?
Chodzi głównie, aby przy wyszukiwaniu rekordów działała szybko.
Proszę o radę.
Z góry dziękuje.

Napisany przez: viking 15.01.2023, 11:18:41

Milion to nie jest dużo. Zależy po czym chcesz szukać. Przemyśl indeksy.

Napisany przez: szczalpi 15.01.2023, 11:26:57

Jak lepiej przyjąć. Dzielić czy trzymać wszystko w jednym miejscu ?
Obecnie mam około 1 mln. Jeżeli wszystko dodałbym wyjdzie ponad 4 mln rekordów.

Napisany przez: Salvation 15.01.2023, 12:01:04

Normalizacja, więc Państwa jako tabela i Miasta jako osobna tabela z relacją.

Napisany przez: ohm 15.01.2023, 17:54:16

Cytat(Salvation @ 15.01.2023, 12:01:04 ) *
Normalizacja, więc Państwa jako tabela i Miasta jako osobna tabela z relacją.

+ unikanie duplikowania danych przede wszystkim, jeśli są jakieś parametry powtarzalne to out do osobnej tabeli (oczywiście piszę tu o rozsądnych wyciąganiach a nie byle każda pierdoła)

Ogólnie milion rekordów przy odpowiednio zaplanowanej i wykonanej strukturze to właściwie jest niewiele, dużą rolę także odgrywa odpowiednie ustawienie samego silnika bazy danych (ram, operacje IO, itp)

Napisany przez: vokiel 15.01.2023, 22:42:37

I tak i nie. To zależy dry.gif

Np, jeśli rekordów przybywa, lub są często modyfikowane - normalizacja i rozbicie na osobne tabele.
Ale, gdy to jest jeden stały, albo prawie stały zbiór to lepiej trzymać w jednej tabeli. Odchodzą wtedy JOINy, jeden indeks. A bazę z 1-4 mln wierszy to i na Raspberry Pi można postawić.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)