¿Se recomienda usar SQL Server como base de datos para aplicaciones masivamente escalables?

10

Digamos que está planeando crear un sitio web de la escala de Facebook (si voy a citar el nombre de un sitio web, ¿por qué no Facebook?). ¿Se recomienda usar SQL Server como su base de datos para tales aplicaciones?

Estoy haciendo esta pregunta porque muchos colegas míos dicen que el servidor SQL no debe usarse para tales aplicaciones. Prefieren Oracle o MySQL en su lugar.

Mayank
fuente
1
¿Utilizan SQL Server para alguna aplicación?
JeffO
55
No sé si la respuesta es el servidor SQL, pero Oracle no es mejor que el servidor SQL.
Trabajo
99
Primero hágase la pregunta: ¿sus datos son relacionales ?
Henrik
2
¿Es su presupuesto masivamente escalable?
sasfrog

Respuestas:

10

, SQL Server ha sido diseñado para un uso intensivo, incluida la web. Tiene la capacidad de colocarse en muchas configuraciones diferentes, como instancias de memoria junto con instancias de CPU y una SAN como almacenamiento.

Pida consejos a su integrador o evangelista local de Microsoft.

Puede encontrar muchos recursos con respecto a las capacidades de escalado de SQL Server en la web, y para empezar, aquí hay una buena publicación del blog del equipo de SQL Server sobre el tema: http://blogs.msdn.com/b/sqlcat/archive/ 2008/06/12 / sql-server-scale-out.aspx

Asegúrese de verificar cómo Azure proporciona SQL Server en la nube.


fuente
SQL Azure no es solo un 'Servidor SQL en la nube', hay algunas diferencias. Pero sin duda es una opción viable para un sitio a gran escala y debe considerarse.
Bart
Si tienes dinero para tirar, entonces escalará.
David Neale
3

SQL Server es la combinación para cualquier otra base de datos para este tipo de trabajo, pero si está pensando en hacer algo a ese tipo de escala, podría ser mejor trabajar con un sistema de almacenamiento de tablas en la nube en lugar de una base de datos relacional convencional en términos de escalabilidad o diseñar un sistema heterogéneo que utilice el almacenamiento de tablas para la gestión de datos a mayor escala y una base de datos para los lugares donde necesita las instalaciones relacionales o transaccionales que ofrecen.

glenatron
fuente
Sí, respuesta aceptada. Votado ;)
Henrik
3

No debería usar motores de base de datos tradicionales si necesita capacidades genuinamente escalables de forma masiva.

Bases de datos SQL tradicionales hacen escala bastante bien (se puede encontrar un montón de ejemplos de grandes sitios que utilizan MySQL, SQL Server o Orcale), pero en un cierto punto en el que se golpeó el límite de escalabilidad. El momento exacto en que esto ocurra dependerá del nivel de demanda, la complejidad de los requisitos de su aplicación, cuánto está dispuesto a gastar en servidores caros y qué tan bien puede optimizar el uso de la base de datos. Muchos sitios nunca alcanzarán este límite, pero si lo hace, es bastante doloroso y enfrentará un gran desafío de ingeniería para solucionar el problema.

Más allá de este punto, realmente necesita una base de datos NoSQL completamente distribuida , por ejemplo, algo como Cassandra , que de hecho se desarrolló en Facebook para resolver algunos de sus desafíos de big data. Las bases de datos NoSQL sacrifican explícitamente algunas de las capacidades tradicionales de la base de datos SQL (generalmente alrededor de transacciones, bloqueo y consistencia eventual) para permitir una escalabilidad horizontal ilimitada de manera efectiva.

En general, mi consejo sería averiguar si realmente necesita una escalabilidad masiva y elegir su ruta tecnológica en consecuencia.

mikera
fuente
2

Si. Creo que Microsoft Live.com está construido sobre SQL Server.

Ser un fanático de Linux / PostgreSQL me permite decir que puedes crear Facebook con cualquier tecnología de hoy, especialmente SQL Server.

Si no planea tener tantos usuarios como Facebook (500M), entonces este sitio web (red de desbordamiento de pila) está construido sobre .Net y SQL Server.

vz0
fuente
2

Como herramienta, es posible que pueda usar SQL Server, pero recuerde que los sitios como Facebook no se crean solo en la parte superior de una Base de datos. Utilizan diversas tecnologías para realizar la tarea, mira los videos de Yahoo para descubrir cómo Facebook administra los registros solo y te darás cuenta de que DB es solo una parte de la gran arquitectura escalable. A aproximadamente 10000 filas de actualización por segundo, he visto que tanto SQL Server como Oracle DB son muy lentos después de unos días en una buena máquina de configuración. Mi problema es que no pude usar la computación distribuida. Por lo tanto, es importante observar los sistemas de soporte que puede proporcionar una base de datos o una arquitectura escalable.

Friki
fuente
2

No puedo responder por MySQL (!) Pero tengo experiencia en el soporte a clientes que elegimos si usar SQLServer u Oracle. Hasta ahora, hemos descubierto que generalmente no hay diferencia entre ellos, pero cuando las cosas llegan al límite, Oracle es, con mucho, el mejor producto. Por ejemplo, actualmente estamos eliminando nuestro sistema de misión crítica 24/7 para purgar una carga de registros, ya que SQLServer decidió que tomaría muchas horas realizar esta tarea mientras se ejecuta (en un entorno reflejado). Tuvimos problemas con el envío de registros de un gran conjunto de datos a través de un enlace WAN que nunca se resolvió del todo. Cosas como esta siempre nos alegra apoyar a los clientes que se ejecutan en Oracle, donde nunca tenemos tales problemas.

Entonces, si está buscando un sistema masivamente escalable, es probable que encuentre estos problemas. Oracle es aburrido, difícil y molesto, pero realmente funciona.

gbjbaanb
fuente