Obsługa bazy SQlite (lokalna)

0

Witam

  1. Zrobiłem program który operuje na bazie SQLite. Wpisuje, odczytuje usuwa wpisy.
    W bazie mam 3 tabele z różnymi rekordami.

Zapisywania i usuwanie wykonują się szybko (jest to jedna operacja wykonywana sporadycznie), natomiast odczytywanie juz wygląda gorzej. Mając 300 wpisów którymi chce wypelnić tabele trwa 1-2sekundy. nie jest to dużo ale co jeśli wpisów będzie 3000 i więcej? Program może się okazać zbyt oporny.

Jak podejść do takiego większego programu? sama umiejętność operowania na bazie nie wystarczy.

  1. Czy można plik z bazą danych wrzucić do ramu i w ramie dokonywać operacji na bazie?
    na pewno zwiększyło by to szybkośc działania oraz komfort (hałas HDD). Jedynie zmiany byly by zapisywe co jakiś czas na dysk zastępując cały plik.

Nie wiem co zrobić, nie bardzo mam wyobrażenie jak do tego podejść i jak to sie robi.
Czy może nie przejmować się tym i operować tylko na HDD?

0

Dla tak mikroskopijnych ilości danych w ogóle bym się narzutem HDD nie przejmował, już prędzej użyłbym normalnej bazy danych zamiast tego.
Czemu zapytania tak długo trwają? Pewnie dlatego że są źle napisane.

0
maxiu1989 napisał(a):

Mając 300 wpisów którymi chce wypelnić tabele trwa 1-2sekundy. nie jest to dużo ale co jeśli wpisów będzie 3000 i więcej? Program może się okazać zbyt oporny.
SQLite nie jest może najszybszą bazą, ale tu raczej masz coś nieoptymalnie z zapytaniami albo kodem programu.

maxiu1989 napisał(a):

Czy można plik z bazą danych wrzucić do ramu i w ramie dokonywać operacji na bazie?
na pewno zwiększyło by to szybkośc działania oraz komfort (hałas HDD). Jedynie zmiany byly by zapisywe co jakiś czas na dysk zastępując cały plik.
Poszukaj sobie: sqlite :memory:, sqlite pozwala na operowanie na bazie w pamięci.

Inna sprawa, czy te kilkaset czy kilkatysięcy zapytań na pewno masz hurtem, jednorazowo? Czy po kilka, kilkanaście po jakiejś operacji użytkownika/programu - bo tu zazwyczaj coś się zapisuje np. po wpisaniu danych, w odpowiedzi na jakąś operację, więc de facto ten czas się rozkłada na wiele "kawałków" i nie jest to aż takie uciążliwe...

1 użytkowników online, w tym zalogowanych: 0, gości: 1