Dlaczego tak długo?, sqlite vs postgresql |
Dlaczego tak długo?, sqlite vs postgresql |
4.04.2006, 00:47:23
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 4.04.2006 Ostrzeżenie: (0%) |
Mam takie zapytanie:
1066 to wartość zwrócona przez ( SELECT id FROM osoby WHERE nazwa = 'Foo' ), ponieważ zauważyłem, że wybranie id osoby i wstawienie go do powyższego zapytanie jest szybsze niż ta:
co wydaje mi się dziwne. Szybsze powinno byc to drugie z zagnieżdżonym podzapytaniem. No ale nie o tym chciałem. Chodzi mi o to że zapytanie to wykonuje się około 2500ms na dobrym sprzęcie. Na gorszym kompie trwa to 5-6 skund. Mowa tutaj o sqlite. Natomiast takie zapytanie do postgresa wykonuje się w około 100ms. Róznica jest znaczna. Wszystkie selecty do sqlite wykonywały mi się dużo szybciej niż do pg, oprócz tego jednego przypadku. Szybkość ma dla mnie duże znacznie i czas 5-6 sekund jest nie do zaakceptowania. Zmniejszyć tego selecta już nie mogę. Co można zrobić, żeby wykonywał się szybciej? Ten post edytował arx 4.04.2006, 09:23:02 |
|
|
4.04.2006, 10:02:49
Post
#2
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 12.05.2003 Skąd: Mikołów Ostrzeżenie: (0%) |
zalozyc indeksy na nazwa, gk.gon, g.id,
dodatkowo subselecty moga nie byc wydajne (taki problem kiedys mial firebird). -------------------- ..::elessar::..
|
|
|
4.04.2006, 10:10:25
Post
#3
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Niestety - ale wydajność SQLite sprawdza się tylko i wyłącznie na najprostrzych zapytaniach.
Jakiekolwiek Joiny, subzapytania i warunki w znaczący sposób spowalniają tą bazę. Ale w tym konkretnym przypadku rzeczywiście wygląda to na jakiś problem z indexami, lub typem danych kolumn wykorzystywanych w warunkach i zlączeniach. -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
4.04.2006, 15:38:41
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 4.04.2006 Ostrzeżenie: (0%) |
Dzięki, indeksy pomogły. Teraz jest 30ms.
|
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 02:20 |