Wird empfohlen, SQL Server als Datenbank für massiv skalierbare Anwendungen zu verwenden?


10

Angenommen, Sie planen, eine Website in der Größenordnung von Facebook zu erstellen (Wenn ich den Namen einer Website zitieren möchte, warum dann nicht Facebook?!). Wird empfohlen, SQL Server als Datenbank für solche Anwendungen zu verwenden?

Ich stelle diese Frage, weil viele meiner Kollegen sagen, dass SQL Server solche Anwendungen nicht verwenden sollte. Sie bevorzugen stattdessen Oracle oder MySQL.


1
Verwenden sie SQL Server für Anwendungen?
JeffO

5
Ich weiß nicht, ob SQL Server die Antwort ist, aber Oracle ist nicht besser als SQl Server.
Job

9
Stellen Sie sich zuerst die Frage - sind Ihre Daten relational ?
Henrik

2
Ist Ihr Budget massiv skalierbar?
Sasfrog

Antworten:


10

Ja , SQL Server wurde für eine starke Nutzung einschließlich Web entwickelt. Es kann in viele verschiedene Konfigurationen versetzt werden, z. B. Speicherinstanzen, die mit einer CPU-Instanz und einem SAN als Speicher gekoppelt sind.

Fragen Sie Ihren lokalen Microsoft-Integrator oder Evangelisten um Rat.

Im Web finden Sie viele Ressourcen zu den Skalierungsfunktionen von SQL Server. Als Einstieg finden Sie hier einen schönen Blog-Beitrag des SQL Server-Teams zum Thema: http://blogs.msdn.com/b/sqlcat/archive/ 2008/06/12 / sql-server-scale-out.aspx

Stellen Sie sicher, dass Sie überprüfen, wie Azure SQL Server in der Cloud bereitstellt.


SQL Azure ist nicht nur ein "SQL Server in der Cloud", es gibt auch einige Unterschiede. Aber es ist sicherlich eine praktikable Option für eine großformatige Site und sollte in Betracht gezogen werden.
Bart

Wenn Sie Geld haben, um es zu werfen, wird es skalieren.
David Neale

3

SQL Server passt zu jeder anderen Datenbank für diese Art von Arbeit. Wenn Sie jedoch überlegen, etwas in dieser Größenordnung zu tun, arbeiten Sie in Bezug auf die Skalierbarkeit möglicherweise besser mit einem Cloud-Tabellenspeichersystem als mit einer herkömmlichen relationalen Datenbank oder Entwerfen eines heterogenen Systems, das Tabellenspeicher für die Datenverwaltung in größerem Maßstab und eine Datenbank für die Orte verwendet, an denen Sie die angebotenen relationalen oder Transaktionsfunktionen benötigen.


Ja, Antwort akzeptiert. Abgestimmt. ;)
Henrik

3

Sie sollten keine herkömmlichen Datenbank-Engines verwenden, wenn Sie echte, massiv skalierbare Funktionen benötigen.

Traditionelle SQL - Datenbanken zu tun Skala ziemlich gut , aber an einem bestimmten Punkt (Sie viele Beispiele für große Websites mit MySQL, SQL Server oder Orcale zu finden) Sie wird die Skalierbarkeit Grenze erreicht. Wann genau dies geschieht, hängt von der Nachfrage, der Komplexität Ihrer Anwendungsanforderungen, der Bereitschaft ab, für teure Server auszugeben, und davon, wie gut Sie die Datenbanknutzung optimieren können. Viele Websites werden diese Grenze nie erreichen, aber wenn Sie dies tun, ist es ziemlich schmerzhaft und Sie werden vor einer großen technischen Herausforderung stehen, um das Problem zu beheben.

Über diesen Punkt hinaus benötigen Sie wirklich eine vollständig verteilte NoSQL- Datenbank - z. B. Cassandra , die tatsächlich bei Facebook entwickelt wurde, um einige ihrer Big-Data-Herausforderungen zu lösen. NoSQL-Datenbanken opfern explizit einige der traditionellen SQL-Datenbankfunktionen (normalerweise in Bezug auf Transaktionen, Sperren und eventuelle Konsistenz), um eine effektiv unbegrenzte horizontale Skalierbarkeit zu ermöglichen.

Insgesamt würde ich raten, herauszufinden, ob Sie wirklich eine massive Skalierbarkeit benötigen, und Ihren Technologiepfad entsprechend zu wählen.


2

Ja. Ich glaube, Microsoft Live.com basiert auf SQL Server.

Als Linux / PostgreSQL-Fan kann ich sagen, dass Sie Facebook mit jeder heutigen Technologie erstellen können, insbesondere mit SQL Server.

Wenn Sie nicht so viele Benutzer wie Facebook (500 Millionen) haben möchten, basiert diese Website (Stack Overflow-Netzwerk) auf .NET und SQL Server.


2

Als Tool können Sie möglicherweise SQL Server verwenden, aber denken Sie daran, dass Websites wie Facebook nicht nur auf einer Datenbank basieren. Sie verwenden verschiedene Technologien, um die Aufgabe zu erledigen. Sehen Sie sich die Yahoo-Videos an, um herauszufinden, wie Facebook Protokolle allein verwaltet, und Sie werden feststellen, dass DB nur ein Teil der riesigen skalierbaren Architektur ist. Bei einer Aktualisierung von ungefähr 10000 Zeilen pro Sekunde habe ich festgestellt, dass sowohl SQL Server als auch Oracle DB nach einigen Tagen auf guten Konfigurationsmaschinen sehr langsam sind. Mein Problem ist, dass ich kein verteiltes Computing verwenden konnte. Daher ist es wichtig, die Unterstützungssysteme zu betrachten, die eine Datenbank oder eine skalierbare Architektur bereitstellen kann.


2

Ich kann nicht für MySQL (!) Antworten, aber ich habe Erfahrung in der Unterstützung von Kunden, bei denen wir uns für SQLServer oder Oracle entscheiden. Bisher haben wir festgestellt, dass es im Allgemeinen keinen Unterschied zwischen ihnen gibt, aber wenn die Dinge auf den Rand kommen, ist Oracle bei weitem das bessere Produkt. Zum Beispiel schalten wir derzeit unser unternehmenskritisches 24/7-System aus, um eine Menge Datensätze zu löschen, da SQLServer beschlossen hat, dass diese Aufgabe während der Ausführung (in einer gespiegelten Umgebung) viele Stunden dauern würde. Wir hatten Probleme mit dem Protokollversand eines großen Datensatzes über eine WAN-Verbindung, die nie ganz gelöst wurde. Solche Dinge freuen uns immer, die Kunden zu unterstützen, die auf Oracle laufen, wo wir nie solche Probleme haben.

Wenn Sie also nach einem massiv skalierbaren System suchen, werden Sie diese Probleme wahrscheinlich finden. Oracle ist langweilig, schwierig und nervig, aber es funktioniert wirklich.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.