Czy zaleca się używanie programu SQL Server jako bazy danych dla aplikacji o dużej skalowalności?


10

Powiedzmy, że planujesz stworzyć stronę internetową o skali Facebooka (jeśli mam zacytować nazwę strony internetowej, dlaczego nie Facebook ?!). Czy zaleca się używanie SQL Server jako bazy danych dla takich aplikacji?

Zadaję to pytanie, ponieważ wielu moich kolegów twierdzi, że SQL Server nie powinien być używany w takich aplikacjach. Zamiast tego wolą Oracle lub MySQL.


1
Czy używają SQL Server do jakichkolwiek aplikacji?
JeffO

5
Nie wiem, czy SQL Server jest odpowiedzią, ale Oracle nie jest lepszy od SQl Server.
Job

9
Najpierw zadaj sobie pytanie - czy twoje dane są relacyjne ?
Henrik,

2
Czy Twój budżet jest ogromnie skalowalny?
sasfrog

Odpowiedzi:


10

Tak , SQL Server został zaprojektowany do intensywnego użytkowania, w tym do sieci. Ma możliwość umieszczenia w wielu różnych konfiguracjach, takich jak instancje pamięci w połączeniu z instancjami procesora i SAN jako pamięcią.

Poproś lokalnego integratora Microsoft lub ewangelistę o porady.

W Internecie można znaleźć wiele zasobów dotyczących możliwości skalowania programu SQL Server, a na początek jest ładny post na blogu od zespołu SQL Server na ten temat: http://blogs.msdn.com/b/sqlcat/archive/ 2008/06/12 / sql-server-scale-out.aspx

Pamiętaj, aby sprawdzić, w jaki sposób Azure zapewnia SQL Server w chmurze.


SQL Azure to nie tylko „SQL Server w chmurze”, istnieją pewne różnice. Ale z pewnością jest to opłacalna opcja dla witryny o dużej skali i należy na nią spojrzeć.
Bart

Jeśli masz na to pieniądze, to skaluje się.
David Neale

3

SQL Server jest odpowiedni dla każdej innej bazy danych do tego rodzaju pracy, ale jeśli myślisz o zrobieniu czegoś na taką skalę, być może lepiej będzie pracować z systemem przechowywania w chmurze niż z konwencjonalną relacyjną bazą danych pod względem skalowalności lub zaprojektowanie heterogenicznego systemu, który wykorzystuje pamięć tabel do zarządzania danymi na większą skalę oraz bazę danych dla miejsc, w których potrzebujesz relacyjnych lub transakcyjnych udogodnień, które oferują.


Tak, odpowiedź została zaakceptowana. Zagłosowano. ;)
Henrik

3

Nie powinieneś używać tradycyjnych silników baz danych, jeśli potrzebujesz prawdziwie skalowalnych możliwości.

Tradycyjne bazy danych SQL dość dobrze skalują się (znajdziesz wiele przykładów dużych witryn korzystających z MySQL, SQL Server lub Orcale), ale w pewnym momencie osiągniesz limit skalowalności. Dokładnie kiedy to się stanie, będzie zależeć od poziomu popytu, złożoności wymagań aplikacji, ile jesteś skłonny wydać na drogie serwery i jak dobrze jesteś w stanie zoptymalizować wykorzystanie bazy danych. Wiele witryn nigdy nie osiągnie tego limitu, ale jeśli to zrobisz, będzie to dość bolesne i staniesz przed wielkim wyzwaniem inżynieryjnym, aby rozwiązać problem.

Poza tym naprawdę potrzebujesz w pełni rozproszonej bazy danych NoSQL - np. Czegoś takiego jak Cassandra , która została opracowana na Facebooku w celu rozwiązania niektórych problemów związanych z dużymi danymi. Bazy danych NoSQL wyraźnie poświęcają niektóre tradycyjne możliwości bazy danych SQL (zwykle wokół transakcji, blokowania i ewentualnej spójności), aby umożliwić efektywnie nieograniczoną skalowalność w poziomie.

Ogólnie moją radą byłoby dowiedzieć się, czy naprawdę potrzebujesz ogromnej skalowalności, i odpowiednio wybrać ścieżkę technologiczną.


2

Tak. Wierzę, że Microsoft Live.com jest oparty na SQL Server.

Będąc fanem Linux / PostgreSQL, powiem, że możesz stworzyć Facebooka za pomocą dowolnej dzisiejszej technologii, szczególnie SQL Server.

Jeśli nie planujesz mieć tylu użytkowników, co Facebook (500 mln), to ta większość witryn (sieć przepełnienia stosu) jest zbudowana na platformie .Net i SQL Server.


2

Jako narzędzie możesz używać programu SQL Server, ale pamiętaj, że witryny takie jak Facebook nie są zbudowane na samej bazie danych. Używają różnych technologii, aby wykonać zadanie, sprawdź filmy Yahoo, aby dowiedzieć się, jak facebook zarządza samymi Logami, a zdasz sobie sprawę, że DB jest tylko częścią ogromnej skalowalnej architektury. Przy około 10000 wierszach aktualizacji na sekundę zauważyłem, że zarówno SQL Server, jak i Oracle DB działają bardzo wolno po kilku dniach na dobrych maszynach konfiguracyjnych. Mój problem polega na tym, że nie mogłem korzystać z przetwarzania rozproszonego. Dlatego ważne jest, aby spojrzeć na systemy wsparcia, które może zapewnić DB lub architektura skalowalna.


2

Nie mogę odpowiedzieć na MySQL (!), Ale mam doświadczenie w obsłudze klientów, którzy wybrali SQLServer lub Oracle. Jak dotąd stwierdziliśmy, że generalnie nie ma między nimi żadnej różnicy, ale kiedy sprawy stają się skrajne, Oracle jest zdecydowanie lepszym produktem. Na przykład, obecnie usuwamy nasz system o kluczowym znaczeniu 24/7, aby wyczyścić ładunek rekordów, ponieważ SQLServer zdecydował, że wykonanie tego zadania zajmie wiele godzin (w środowisku lustrzanym). Mieliśmy problemy z wysyłaniem dziennika dużego zestawu danych przez łącze WAN, które nigdy nie zostało całkiem rozwiązane. Takie rzeczy zawsze sprawiają, że chętnie wspieramy klientów korzystających z Oracle, gdzie nigdy nie mamy takich problemów.

Jeśli więc szukasz masowo skalowalnego systemu, prawdopodobnie znajdziesz te problemy. Wyrocznia jest nudna, trudna i denerwująca, ale naprawdę działa.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.