.Net Core SQLite, czy relacyjna baza

0

Zastanawiam się, czy do swojego projektu potrzebuję faktycznie jakiegoś MSSQL (MySQL), czy może SQLite styknie. Pytanie moje wynika z nieznajomości mechanizmów ASP.
Tworzę WebAPI. Klientów może być nawet kilkaset. Klienci wywołują jakieś żądanie, natomiast serwer odpytuje bazę lub zapisuje do niej.
Jeśli chodzi o SQLite to nie powinno się go używać w sytuacjach, kiedy możemy mieć kilka zapisów jednocześnie. Więc teraz rodzi się pytanie. Czy ASP domyślnie "kolejkuje" sobie żądania i obsługuje je jeden po drugim, czy może wszystko idzie "równolegle". Wiadomo, że jeśli podłączy mi się 100 klientów, to nie powstanie nagle 100 wątków. Ale czy wszystkie żądania będą obsługiwane jeden po drugim?

1

To zależy od konfiguracji serwera. Ale w dużym uproszczeniu masz pulę wątków, która jest przeznaczona do obsługi requestów, które jak najbardziej działają równolegle.

0

Z tego co się orientuje to nie da się asp.net web api tak ustawić by działało szeregowo, trzeba by było samemu robić synchronizacje co by requesty były przetwarzane szeregowo.
Natomiast api z WCF można ustawić tak by przetwarzało żądania szeregowo.

Ogólnie jeśli nie masz dobrego powodu to lepiej requesty przetwarzać równolegle i zdać się na źródło danych w kwestii obsługi równoległości.

1

Ale przecież SQLite to jest relacyjna baza danych, więc pytanie nie ma sensu.

Możesz sobie napisać jakiś wrapper, który będzie zapisy kolejkował, ale przecież ucierpi na tym wydajność. Lepiej użyj innego RDBMSa.

0

Czyli mówicie, żeby w takim przypadku lepiej nie używać SQLite, tak?

1

Tak. Mysql zresztą też nie. :)

0
jacek.placek napisał(a):

Tak. Mysql zresztą też nie. :)

OK, skoro nie MySQL i nie SQLite, to zostaje mi MSSQL lub MariaDB. To będzie wszystko na Linuxie stało, a nie wiem jak tu wygląda sprawa z MSSQL. Ponoć już można. Ale czy MSSQL jest darmowe na Linuxie? Jakie ma ograniczenia? Z jednej strony wolałbym, żeby to stało na MSSQL, ale nie wiem jak tu wygląda sprawa z Linuxem i opłatami. Więc z drugiej strony ciągnie mnie do MariaDB.

Co do Oracle, to tego nigdy nie używałem i w związku z tym nie chcę pchać go do tego projektu. Co do PostgreSQL, to... mnie wk...wia ;)

0

Licencjonowanie MS SQL Servera opiera się chyba bardziej na wielkości bazy niż na platformie. Wersja Express chyba powinna wystarczyć.

0

"Ale czy wszystkie żądania będą obsługiwane jeden po drugim?"
Jeżeli pytasz o sqllite to nie wiem, ale się domyślam (czyli będą jaja, bo to działa bezpośrednio na plikach - chyba, ze coś się rozwinęła ta baza).
Maria DB to przecież MySQL, który odradzają.
MSSQL Express ma ograniczenia - na pewno w wielkości bazy, ilosci rdzeni, używaniu RAM etc. Są legendy, że są ograniczenia w silniku - lepiej poczytaj na stronie MS, bo te ograniczenia zmieniały się z wersji na wersję (w starszych wersjach ograniczali wydajność).
Nie od parady jest wersja MSSQL Web - oczywiście odpłatna.
Przemyśl strukturę apki - przecież możesz użyć cache do odczytu, zapisy zoptymalizować - nawet z szeregowanie, do tego użyć dobrego SSD (wysoki zapis i duze IO). No i pamiętaj o odpowiednim użyciu transakcji, bo jak to źle zrobisz to zmulisz każdy serwer bazy.
Możesz zrobić load balancing na kilka RDMS - o ile to ma sens ze względu na dane.

Jezeli naprawde będzie tylu chętnych to może się znajdzie kasa na MSSQL w wersji WEB.

Dobrze zaplanowanie infra pod apkę potrafi potrafi zdziałać cuda.

0

Jest jeszce firebird. Kiedys byl dosc popularny jak Borlandowe Internase. Znam firmę ktora uzywa w sporych sprzedażowych aplikacjach.

Jak Ci pasuje Mariadb to rób na tym. Mnie draznia narzędzia i niedopracowane biblioteki do ef ale może to mój problem.

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