2013-07-09 18 views
5

Jaka jest różnica między bazą danych jednego użytkownika a bazą wielu użytkowników? Dlaczego potrzebowałbym korzystać z bazy danych jednego użytkownika? dlaczego został stworzony?Baza danych pojedynczych użytkowników kontra wielu użytkowników

Jeśli mam wiele wątków uzyskujących dostęp do tej samej bazy danych w tym samym czasie przy użyciu tych samych poświadczeń logowania, czy potrzebuję bazy danych wielu użytkowników?

Odpowiedz

6

Jaka jest różnica między bazą danych jednego użytkownika a bazą danych wielu użytkowników ? Dlaczego potrzebowałbym korzystać z bazy danych jednego użytkownika? dlaczego został zrobiony ?

Tryb pojedynczego użytkownika umożliwia tylko jedno połączenie z bazą danych w danym momencie.

Od czasu, gdy oznaczyłeś to pytanie jako SQLite, opieram swoją odpowiedź na tym konkretnym silniku.

Model ochrony przed współbieżnością SQLite bazuje na bezpośrednim odczytywaniu plików i zapisie do pliku bazy danych na dysku, więc oczywiście dwa różne programy nie mogą zapisywać tego samego pliku na dysku w tym samym czasie. SQLite zmusi drugie zapytanie do oczekiwania podczas wprowadzania zmian w pliku bazy danych.

SQLite chroni przed uszkodzeniem plików/baz danych przy użyciu blokad plików systemu operacyjnego, gdy wykonywane są WSTRZYKIWANIA i AKTUALIZACJE. Ale pozwala jednocześnie obsługiwać wiele uchwytów tylko do odczytu (podobnie jak można otwierać ten sam plik wiele razy w trybie tylko do odczytu na pulpicie, ale nie będzie można zapisać zmian).

W innych bazach danych, takich jak SQL Server, tryb pojedynczego użytkownika jest często używany tylko wtedy, gdy baza danych wymaga konserwacji - jak przywracanie pliku kopii zapasowej, zmiana struktury bazy danych lub zmiana globalnych ustawień bazy danych.

Tryb dla pojedynczego użytkownika jest przydatny, ponieważ nie można mieć podłączonych klientów i próbować odczytać/zapisać dane podczas dokonywania tego rodzaju zmian.

Jednak w normalnych warunkach nie należy uruchamiać programu SQL Server w trybie pojedynczego użytkownika ze względu na wydajność. Jednakże, jeśli nie posiadasz dużej ilości usługi internetowej, SQLite prawdopodobnie będzie w stanie obsłużyć wymagania wydajnościowe pomimo zmian pojedynczych na dysku.

Jeśli mam wiele wątków uzyskujących dostęp do tej samej bazy danych w tym samym czasie przy użyciu tych samych poświadczeń logowania, czy potrzebuję bazy danych wielu użytkowników?

Nie, nadal będzie działać. Bazy danych SQLite w ogóle nie wymagają uwierzytelniania, nie ma poświadczeń innych niż uprawnienia do plików/katalogów.

Powiązane problemy