Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PostgreSQL] Czy Postgre da radę
dado
post
Post #1





Grupa: Zarejestrowani
Postów: 194
Pomógł: 2
Dołączył: 12.04.2004
Skąd: Częstochowa

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dado
post
Post #2





Grupa: Zarejestrowani
Postów: 194
Pomógł: 2
Dołączył: 12.04.2004
Skąd: Częstochowa

Ostrzeżenie: (10%)
X----


no właśnie to jest dziwne że tam gdzie ma być primary key dane dla tej kolumny się powtarzają i wywala błąd więc primary key nie ma są tylko indexy.

Mam pytanie gdybym dodał sam dodatkową kolumnę której dałbym primary_key i autoincrement a następnie włączył do indexu to coś to da?
Tak naprawdę rozchodzi się o główna tabelę gdzie dane z innych tabel są łączone wygląda ona w uproszczeniu tak:

Kod
artnr | genartnr | kritnr | kritwert | sortnr | lfdnr

gdzie :

artnr - kod części
genartnr - kod w drzewie części
krintnr - rodzaje grup pojazdów (2-osobowe, 16-ciężarówy, 5 -silniki, 7-hamulce itd)
kritwert - kod samochodu
sortnr - sortowanie wyników dla tego artnr
lfdnr - kod części z które wchodzą w skład części główne artnr

i tak jest zrobiony index btree na artnr,genartnr,kritwert

ta tabela zawiera trochę ponad 100 milionów rekordów i zapytanie, takie jak poniżej, trwa z 150 sekund
  1. SELECT a.ArtNr, a.DLNr, a.GenArtNr, a.LfdNr, d.Bez AS opis FROM tbl_400 a
  2. LEFT OUTER JOIN tbl_320 b ON (a.GenArtNr = b.GenArtNr)
  3. LEFT OUTER JOIN tbl_323 c ON (b.NartNr = c.NartNr)
  4. LEFT OUTER JOIN tbl_030 d ON (c.BezNr = d.BezNr)
  5. LEFT OUTER JOIN tbl_325 e ON (b.VerwNr = e.VerwNr)
  6. WHERE a.genartnr="34" AND a.krintnr="2" AND a.kritwert="12344" AND d.SprachNr='19' ORDER BY a.sortnr ASC


Ten post edytował dado 20.10.2008, 09:25:18
Go to the top of the page
+Quote Post

Posty w temacie
- dado   [PostgreSQL] Czy Postgre da radę   15.10.2008, 08:23:43
- - Sedziwoj   "dane w kolumnach nie są unikalne" To na...   18.10.2008, 11:09:55
- - dado   no właśnie to jest dziwne że tam gdzie ma być prim...   20.10.2008, 08:16:35
- - wookieb   Cytat(dado @ 20.10.2008, 09:16:35 ) M...   20.10.2008, 08:34:35
- - dado   Może to głupie pytanie sprawdzić czy zrobione inde...   20.10.2008, 11:57:58
- - calebos   Sprawdzanie co robi zapytanie: [SQL] pobierz, pla...   21.10.2008, 09:45:58
|- - phpion   Cytat(calebos @ 21.10.2008, 10:45:58 ...   21.10.2008, 16:56:32
|- - calebos   Cytat(phpion @ 21.10.2008, 17:56:32 )...   21.10.2008, 18:28:25
- - dado   Hej no witam zioma Znalazłem sposób na ograniczen...   21.10.2008, 11:38:40
- - Sedziwoj   Z tego zapytania co pisałeś wynika (nie wnikam w j...   21.10.2008, 14:26:34
- - bigZbig   Po pierwsze nie bój się sztucznego primary key czy...   21.10.2008, 18:02:55
- - Sedziwoj   @calebos Pierwsza, druga? a gdzie optymalizator, c...   21.10.2008, 22:48:48
- - calebos   Sedziwoj, Jak dasz indeks na 2 kolumnach ( nie bt...   23.10.2008, 14:37:15
- - Sedziwoj   @calebos Dlatego jak występuje czasem tylko druga ...   24.10.2008, 10:00:45
- - dado   Dzięki za cenne informacje W dokumentacji mam nap...   28.10.2008, 09:36:00
- - Sedziwoj   [SQL] pobierz, plaintext SELECT artnr, sortnr, lfd...   28.10.2008, 10:02:48
- - dado   Dzięki zaraz zapuszczę Udało mi się zrobić index...   28.10.2008, 10:21:10
- - Sedziwoj   Daj potem znać które rady okazały się skuteczne. ...   28.10.2008, 16:35:32
- - dado   Cały czas się z tym męcze ale mam już spore postęp...   5.11.2008, 13:47:27
- - Skobi   [SQL] pobierz, plaintext SELECT a.ArtNr, a.DLNr, a...   5.11.2008, 14:57:42
- - Sedziwoj   Popieram Skobi co do typów kolumn, jak są tylko li...   6.11.2008, 13:32:52
- - Skobi   Co do usuwania Joinow to się z tym nie mogę zgodzi...   6.11.2008, 14:01:26
- - Sedziwoj   @Skobi Proste pytanie, ile razy zajmowałeś się baz...   6.11.2008, 15:37:35
- - Skobi   nie mam zamiaru wchodzić z Tobą w polemikę, bo wyd...   6.11.2008, 20:54:33
- - Sedziwoj   Tylko nie bierzesz jednej bardzo ważnej rzeczy pod...   7.11.2008, 07:40:13
- - Skobi   Biorę pod uwagę to iż w bankach stoją dziesiątki s...   7.11.2008, 09:35:17
- - dado   zamiast left zostawiłem samo join i rzeczywiście w...   28.11.2008, 15:08:21


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 18:29