Pojemność(?) SQLite

Odpowiedz Nowy wątek
2019-03-27 12:56
0

Witam, mam takie być może nietypowe pytanie. Może ciężko to tak konkretnie stwierdzić ale ile musi być danych w bazie żeby była potrzeba zmiany SQLite na większą bazę? Zawsze czytałem że to jest baza na domowe potrzeby, bo przy wypuszczeniu tego w świat, przy coraz większej liczbie rekordów w bazie trzeba się przerzucić na coś większego. Da się zdefiniować albo przybliżyć jaka może być pojemność? Przykładowo niech będzie 1500 użytkowników, każdy może dodać posta, komentarz, zdjęcie, dane o sobie więc te 1 500 trzeba pomnożyć przez x - dajmy na to 50 (gdzie wiadomo że to mała liczba), wtedy wychodzi tych rekordów 75 000, przy 100 już mamy 150 000 itd. Ktoś się może orientuje?

Pozostało 580 znaków

2019-03-27 13:05

140 terabajtów Ci wystarczy? SQLite można całkiem fajnie dopieścić, wykorzystać też takie rzeczy jak full text search w kilku wersjach dla przyśpieszenia, to nie jest rzecz zrobiona na kolanie, a profesjonalna baza danych, tyle, że w formie pliku.


edytowany 1x, ostatnio: Bartosz Wójcik, 2019-03-27 13:07
To nie jest pytanie w związku z jakimś projektem który robię, czysta ciekawość. Skoro ma 140 terabajtów można +/- określić ile to jest rekordów w bazie? Wiem że każdy rekord pewnie będzie miał inny rozmiar, ale może ktoś kiedyś robił jakieś spekulacje na taki temat ;p - pavarotti 2019-03-27 13:07
Ja wykorzystywałem sqlite do projektu, gdzie dane zajmowały ok 8GB z setkami tysięcy rekordów i relacji, więc dasz radę nawet ze 150 tyś rekordów :) - Bartosz Wójcik 2019-03-27 13:10
o to mi chodziło ;-) - pavarotti 2019-03-27 13:11
Ja wykorzystywałem Delphi i https://www.yunqa.de/delphi/products/sqlite3/index mają świetną przeglądarkę do baz https://www.yunqa.de/delphi/products/sqlitespy/index , polecam cały pakiet. - Bartosz Wójcik 2019-03-27 13:14

Pozostało 580 znaków

2019-03-27 13:23
1

Schody się zaczynają jak ktoś chce "dzielić się plikiem bazy" przez sieć. Ani wydajne cachowanie nie da się zrobić, ani bankowo bezpieczna transakcja

Mówisz, że SQlite nie wspiera ACID ani cacheowania? https://www.sqlite.org/transactional.html https://www.sqlite.org/sharedcache.html coś tam jest :) - Bartosz Wójcik 2019-03-27 13:30

Pozostało 580 znaków

2019-03-27 13:24
2

Ilość danych nie jest problemem dla SQLite, da radę z takimi samymi ilościami jak inne relacyjne bazy danych. To co odróżnia SQLite od innych baz danych, to to że obsługuje tylko jeden zapis w danej chwili do bazy (brak współbieżnych zapisów na poziomie bazy danych). Więc jak te 1500 użytkowników będzie chciało zapisać coś w tej samej chwili no to sqllite raczej nie da rady.

Mierzyłeś to? - Bartosz Wójcik 2019-03-27 13:35
policzyłem, dając na każdy poszczególny zapis kilkanaście milisekund, jednoczesny zapis danych od 1,5k potrwa min 30 sec - neves 2019-03-27 13:43
tu gość przetestował i pisze, że z odpowiednimi ustawieniami osiąga 10000 zapisów na sekundę po sieci https://stackoverflow.com/que[...]oncurrent-writing-performance - Bartosz Wójcik 2019-03-27 13:46
Z wynikami zapisów w różnych wariantach, nie ma źle, warto czasami poszukać https://medium.com/@JasonWyat[...]qlite-insertions-971aff98eef2 - Bartosz Wójcik 2019-03-27 13:50
zauważ że w tym artykule jet opisywane jak robić batch inserty, inserty od pojedynczych użytkowników są w odrębnych transakcjach ;), a na so dla 1k benchmark z WAL dał 3 sec, więc te moje 30 sec dla prawdziwych danych wygląda sensownie dla 1,5k - neves 2019-03-27 13:59
@Bartosz Wójcik: nawet autor się do tego przyznaje https://www.sqlite.org/whentouse.html, więc ja bym jednak mu zaufał. - hauleth 2019-03-27 14:22

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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