![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 194 Pomógł: 2 Dołączył: 12.04.2004 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
Mamy pytanie dotyczące sensu stawiana bazy na silniku postgre danych w przypadku gdy :
- baza zawiera ok. 400 milionów rekordów. Rozmiar rekordu od 120 do 950 bajtów. - nie można tworzyć kluczy primary key bo dane w kolumnach nie są unikalne. - baza ma pracować online wystawiona w intenrnecie z średnio 4,5 userami online. - zapytania do bazy danych odwołują się do 3-6 tabel jednocześnie. Baza zawiera wszystkie części samochodowe świata. Czy jedynym wyjściem jest tutaj oracle? W tym momencie zapytanie o wyświetelenie 30 rekordów w pgadminie do jednej z głównych tabel trwa około 4 minut. (tabela przeindeksowana i klastrowana) Może ktoś borykał się z takimi bazami. będę wdzięczny za każdą odpowiedź. Ten post edytował dado 15.10.2008, 08:54:18 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze nie bój się sztucznego primary key czyli tego co w MySql nazywa się polem auto_increment a w Postgresie sekwencją. Indeksy ustaw tylko na polach po których wykonuje się wyszukiwania lub złaczenia - nadmiar indeksów to też nie dobrze bo przecież serwer bazy danych musi je aktualizować przy każdej zmianie danych. Rozumiem, że ciężko zmieniać strukturę bazy w sytuacji kiedy istnieją w niej już dane, ale często ten wysiłek się opłaca. Więc jeśli to możliwe zoptymalizuj schemat. Nadaj kolumnom właściwe typy i np. długości, wyeliminuj redundancje wykonaj normalizację. Jak masz nie taką strukturę to i Oracle Ci nie pomoże.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 19:41 |