Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> modyfikowanie bazy sqlite 3 i wpływ na wydajność i optymalizacje
jolam
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

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


Podczas pracy z tą bazą natrafiła na kilka dziwnych zachowań i nie wiem czy to normalne.

Ale opowiem od początku. Stworzyłam sobie bazę danych, ale oczywiście nie przewidziałam wszystkiego i konieczne były zmiany. Z początku dodawanie kolumn i zmiany nazw kolumn. Ale później musiałam zmieniać definicje kolumn, a tego w sqlite nie da się zrobić. Więc kasowałam kolumnę i dodawałam nową już z poprawioną definicją. Następnie zaczęłam dodawać tabele. Rozmiar bazy bardzo wzrastał ale zaczęłam używać funkcji autovacum i vacum i już zmalał. Ale wczoraj postanowiłam przepisać (skopiować ) wszystkie dane z bazy do innego pliku, tak, żeby poćwiczyć php i sqlite. I okazało się, że ta skopiowana baza jest mniejsza. Zamiast 317kb ma 314kb. Sprawdziłam zawartosć jeszcze raz i jest ta sama. Myślałam, że jakiś błąd komputera, czy dysku i wykonałam kopiowanie bazy jeszcze raz i otrzymałam inny rozmiar 313kb. Potem kopiowałam ją jeszcze kilka razy i dostałam rozmiary od 311kb do 315kb. Dlaczego tak jest?

Postanowiłam potem sprawdzić szybkość baz. Użyłam funkcji microtime. I okazało się, że ta nowsza baza jest szybsza trochę. Różnica tym większa im więcej w pętli select wykonałam. Dlaczego tak jes?

I teraz moje właściwe pytania.
a- Czy zmiany bazy (dodawani, usuwanie i zmiany nazw kolumn i tabel) wpływają na jej jakość. Czy baza w której się nie zmienia żadnych definicji jest lepsza niż ta która się poprawia? To bardzo dla mnie ważne, bo nie zdobyłam jeszcze wiedzy pozwalającej na zrobienie baz bez poprawiania jej później.

b- Czy kolejność kolumn i tabel ma jakieś znaczenie? Ta baza to plik, więc może to co pierwsze zdefiniuje, to szybciej jest odczytywane?

c- W ogóle jest bardzo zaskoczona, bo ja myślałam, że w bazach tak jak i w programowaniu ogólnie można poprawiać błędy i liczy się tylko ostatnia wersja, nie ważne czy stworzona jednym poleceniem, czy 1000 poleceń.


Bardzo was proszę pomóżcie mi, bo ja teraz jestem już totalnie zagubiona w tym całym sqlite i bazach danych.





pozdrawiam serdecznie Jola
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Riklaunim
post
Post #2





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

Ostrzeżenie: (0%)
-----


Jak coś usuwasz w SQLite to żeby usunąć puste miejsca po tych danych należy wykonać polecenie SQL vacuum;
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.06.2026 - 12:51