-
1. Data: 2011-05-08 10:43:11
Temat: Sqlite, a kolejnosc kolumn
Od: "Sasquatch" <s...@q...pl>
Witam,
Mam pytanko odnosnie kolejnosci kolumn. Pisze aplikacje w C++ i dane
przechowuje w sqlite. Mam pytanko odnosnie wydajnosci bazy - czy kolejnosc
kolumn oraz ich rodzaj(tekstowe, liczbowe) wplywa na obnizenie wydajnosci?
Np. jesli bede mial kolumny liczbowe, potem tekstowe i dodam na koncu
jeszcze liczbowe to nie wplynie to na wydajnosc bazy(szukanie, wstawianie)?
Pozdro
-
2. Data: 2011-05-08 10:55:17
Temat: Re: Sqlite, a kolejnosc kolumn
Od: Jacek Czerwinski <...@...z.pl>
W dniu 2011-05-08 12:43, Sasquatch pisze:
> Witam,
>
> Mam pytanko odnosnie kolejnosci kolumn. Pisze aplikacje w C++ i dane
> przechowuje w sqlite. Mam pytanko odnosnie wydajnosci bazy - czy kolejnosc
> kolumn oraz ich rodzaj(tekstowe, liczbowe) wplywa na obnizenie wydajnosci?
> Np. jesli bede mial kolumny liczbowe, potem tekstowe i dodam na koncu
> jeszcze liczbowe to nie wplynie to na wydajnosc bazy(szukanie, wstawianie)?
>
jak potrzebujesz skrajnej szybkosci (bo tylko tak potrafie odczytac
pytanie), gdyby malo ambitne szukanie i C++ to cos z nie SQL-owych, DBM,
QDBM, NDBM (obecnie Oracle), Tokyo cabinet i kilka innych da sie wymienic.
Kopyto niesamowite, choc nie tak ambitne wyszuiwania.
-
3. Data: 2011-05-08 14:31:44
Temat: Re: Sqlite, a kolejnosc kolumn
Od: Szyk <s...@o...pl>
Napisz test na wstawianie i wyszukiwanie 1000000 (1M) rekordów do tabel z:
1) 5 kolumnami typu int
2) 5 kolumnami typu text
I podziel się rezultatami na tej grupie. Sam jestem ciekaw...
-
4. Data: 2011-05-08 14:39:11
Temat: Re: Sqlite, a kolejnosc kolumn
Od: Karol Y <k...@o...pl>
> Napisz test na wstawianie i wyszukiwanie 1000000 (1M) rekordów do tabel z:
> 1) 5 kolumnami typu int
> 2) 5 kolumnami typu text
>
> I podziel się rezultatami na tej grupie. Sam jestem ciekaw...
Zapewne najwięcej czasu zajmie komunikacja aplikacja <-> baza, jeżeli
będzie insertami rzucał po jednym.
--
Mateusz Bogusz
-
5. Data: 2011-05-08 15:58:20
Temat: Re: Sqlite, a kolejnosc kolumn
Od: Michoo <m...@v...pl>
W dniu 08.05.2011 16:39, Karol Y pisze:
> Zapewne najwięcej czasu zajmie komunikacja aplikacja <-> baza, jeżeli
> będzie insertami rzucał po jednym.
najwięcej w takiej sytuacji zajmie oczekiwanie na dysk. Sqlite domyślnie
ma włączony autocommit, który wymusza sync.
--
Pozdrawiam
Michoo
-
6. Data: 2011-05-08 19:49:19
Temat: Re: Sqlite, a kolejnosc kolumn
Od: jolz <B...@i...pl>
SQLite zapisujac wiersz najpierw zapisuje naglowek (przechowuje typ
danych, pozycje gdzie sie zaczyna wartosc kolumny i jej rozmiar) a potem
dane. I naglowek i dane sa zapiswane w takiej kolejnosci jaka jest
deklaracja kolumn w tabeli. Kolejnosc kolumn nie wplywa na wartosci
zapisywane dla pojedynczej kolumny, wiec wielkosc powstalej tablicy
bajtow jest niezalezna od tej kolejnosci. Po stworzeniu tablicy jest ona
zapisywana na dysk blokami. Jesli nie zmiesci sie w 1 bloku to sa
tworzone dodatkowe bloki. Indeksowane jest polozenie tylko pierwszego
bloku dla wiersza wiec do niego jest szybszy dostep niz do pozostalych.
Nastepne bloki sa polaczone w link liste wiec najwolniejszy dostep jest
do ostatniego. Przy odczytywaniu kolumny najpierw musi byc wczytany i
zdekodowany naglowek zeby wiedziec gdzie leza poszczegolne kolumny.
Naglowek dekodowany jest w calosci nawet jesli wczytywana jest tylko
jedna kolumna. Po zdekodowaniu naglowka mozna juz odczytac dane dla
konkretnej kolumny. Jesli potrzebna czesc tablicy bajtow dla wiersza nie
zmiesci sie w jednym bloku to trzeba przydzielic dodatkowa pamiec zeby
polaczyc wartosci wczytane z poszczegolnych blokow. Nie zawsze potrzebna
jest cala tablica - potrzebny jest caly naglowek (z reguly zmiesi sie w
pierwszym bloku) i czesc tablicy odpowiadajaca za odczytanie kolumn
wykorzystywanych w zapytaniu (czesto tez zmiesci sie w jednym bloku, ale
to zalezy od danych i wielkosci bloku).
-
7. Data: 2011-05-08 20:50:34
Temat: Re: Sqlite, a kolejnosc kolumn
Od: "Sasquatch" <s...@q...pl>
Użytkownik "jolz" <B...@i...pl> napisał w wiadomości
news:iq6s44$dam$1@usenet.news.interia.pl...
> SQLite zapisujac wiersz najpierw zapisuje naglowek (przechowuje typ
> danych, pozycje gdzie sie zaczyna wartosc kolumny i jej rozmiar) a potem
[...]
Dzieki kolego za wyjasnienie sprawy. Postaram sie wiec ustawic kolumny wg.
priorytetu waznosci danych w nich zawartych. Pomyslalem, ze jak jak bedzie
trzeba dodac wazna kolumne to chyba lepiej jesli bede tworzyl nowy plik z
rozszerzeniem db1, db2 itd(wersja bedzie zapamietywana w programie), zeby
stworzyc tam nowa tabelke z odpowiednia kolejnoscia danych i kopiowal
wszystkie dane ze starej do nowego pliku. Mysle, ze to bedzie lepsze niz
dodawanie waznych kolumn na koncu i opoznianie do nich dostepu.
Pozdrawiam,
Tomek.
-
8. Data: 2011-05-08 20:50:55
Temat: Re: Sqlite, a kolejnosc kolumn
Od: "Sasquatch" <s...@q...pl>
Użytkownik "Szyk" <s...@o...pl> napisał w wiadomości
news:4dc6a93f$0$2455$65785112@news.neostrada.pl...
> Napisz test na wstawianie i wyszukiwanie 1000000 (1M) rekordów do tabel z:
> 1) 5 kolumnami typu int
> 2) 5 kolumnami typu text
>
>
>
> I podziel się rezultatami na tej grupie. Sam jestem ciekaw...
Wole się uchlać ;D
-
9. Data: 2011-05-08 21:09:16
Temat: Re: Sqlite, a kolejnosc kolumn
Od: Jacek Czerwinski <...@...z.pl>
W dniu 2011-05-08 22:50, Sasquatch pisze:
> Użytkownik "jolz"<B...@i...pl> napisał w wiadomości
> news:iq6s44$dam$1@usenet.news.interia.pl...
>> SQLite zapisujac wiersz najpierw zapisuje naglowek (przechowuje typ
>> danych, pozycje gdzie sie zaczyna wartosc kolumny i jej rozmiar) a potem
> [...]
>
> Dzieki kolego za wyjasnienie sprawy. Postaram sie wiec ustawic kolumny wg.
> priorytetu waznosci danych w nich zawartych.
...
> Mysle, ze to bedzie lepsze niz
> dodawanie waznych kolumn na koncu i opoznianie do nich dostepu.
>
Powiedz, jakie to jest zastosowanie, ze takie wynalazki?
Prom kosmiczny?
O jakich liczbach naprawde tu mowa?
-
10. Data: 2011-05-08 21:23:59
Temat: Re: Sqlite, a kolejnosc kolumn
Od: "Sasquatch" <s...@q...pl>
Użytkownik "Jacek Czerwinski" <...@...z.pl> napisał w wiadomości
news:iq70pr$bdi$1@news.onet.pl...
> Powiedz, jakie to jest zastosowanie, ze takie wynalazki?
> Prom kosmiczny?
> O jakich liczbach naprawde tu mowa?
Jakies 2000 rekordow rocznie. Wiem, ze moge sie troche wyglupiac przy takich
liczbach, ale po prostu pierwszy raz uzywam w swoim projekcie SQL. Do tej
pory wszystko bylo wpisywane do plikow binarnych wg. mojego formatu i nie
wiem jak ma sie wydajnosc SQlite do mojej wlasnej bazy. Jutro chyba
potestuje i zobacze czy jest sens takiego dbania o optymalizacje bazy.
Pozdrawiam,
Tomek.