Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Let's say you are planning to create a website of the scale of Facebook (If I am going to cite a website's name then why not Facebook?!). Is it recommended to use SQL Server as your database for such applications?

I am asking this question because many colleagues of mine say that SQL server should not be used such applications. They prefer Oracle or MySQL instead.

share|improve this question
1  
Do they use SQL Server for any applications? –  JeffO Jan 22 '11 at 14:43
5  
I do not know if SQL server is the answer, but Oracle is no better than SQl Server. –  Job Jan 22 '11 at 22:10
9  
First ask yourself the question -- is your data relational?? –  Henrik Feb 12 '11 at 17:27
    
Is your budget massively scalable? –  sasfrog Apr 21 '12 at 22:47
add comment

6 Answers 6

up vote 8 down vote accepted

Yes, SQL Server has been designed for heavy usage including web. It has the ability to be put in lot of differents configuration such as memory instances coupled with a cpu instances and a SAN as storage.

Ask your local Microsoft integrator or evangelist for advices.

You can find many resources regarding scaling capabilities of SQL Server on the web, and as a starter here is a nice blog post from the SQL Server team on the subject: http://blogs.msdn.com/b/sqlcat/archive/2008/06/12/sql-server-scale-out.aspx

Be sure to check how Azure provide SQL Server in the cloud.

share|improve this answer
    
SQL Azure is not just a 'SQL Server in the cloud', there are some differences. But it's certainly a viable option for a large scaled site and should be looked at. –  Bart Jul 12 '11 at 12:02
    
If you have money to throw at it then it'll scale. –  David Neale Jul 30 '13 at 10:43
add comment

Yes. I believe Microsoft Live.com is built on top of SQL Server.

Being a Linux/PostgreSQL fan let me say that you can create Facebook with any today's tech, specially SQL Server.

If you don't plan to have as many users as Facebook (500M), then this very most website (Stack Overflow network) is built on top of .Net and SQL Server.

share|improve this answer
add comment

As a tool you might be able to use SQL Server but remember site's like Facebook are not built on the top of a Database alone. They use various technologies to get the task done, check out the Yahoo videos to find how facebook manages Logs alone and you would realize that DB is only a part of the huge scalable Architecture. At about 10000 rows update per second I have seen both SQL Server and Oracle DB be very slow after a few days on good configuration machine's. My problem is that I could not use distributed computing. Hence it is important to look at the support systems that a DB or scalable Architecture can provide.

share|improve this answer
add comment

SQL Server is the match for any other database for this kind of work, but if you're thinking of doing something at that kind of scale you might be better working with a cloud table storage system rather than a conventional relational database in terms of scalability, or designing a heterogeneous system that uses table storage for the larger scale data management and a database for the places where you need the relational or transactional facilities those offer.

share|improve this answer
    
Yes, answer accepted. Voted up. ;) –  Henrik Feb 12 '11 at 17:27
add comment

I can't answer for MySQL (!) but I di have experience supporting customers we choose whether to use SQLServer or Oracle. So far, we've found that generally there's no difference between them, but when things get to the edge, Oracle is by far the better product. For example, we are currently taking down our 24/7 mission critical system to purge a load of records as SQLServer decided it would take many hours to do this task while running (in a mirrored environment). We had issues with log shipping of a large dataset across a WAN link that was never quite resolved. Things like this always make us glad to support the customers who run on Oracle, where we never have such problems.

So, if you're looking for a massively scalable system, that's when you're likely to find these issues. Oracle is dull, difficult and annoying, but it really does work.

share|improve this answer
add comment

You shouldn't be using traditional database engines if you need genuine massively scalable capabilities.

Traditional SQL databases do scale pretty well (you'll find plenty of examples of big sites using MySQL, SQL Server or Orcale) but at a certain point you will hit the scalability limit. Exactly when this happens will depend on the level of demand, the complexity of your application requirements, how much you are willing to spend on expensive servers and how well you are able to optimise the database usage. Many sites will never hit this limit, but if you do then it's pretty painful and you will be faced with a big engineering challenge to fix the problem.

Beyond this point, you really need a fully distributed NoSQL database - e.g. something like Cassandra, which was in fact developed at Facebook to solve some of their big data challenges. NoSQL databases explicitly sacrifice some of the traditional SQL database capabilities (usually around transactions, locking and eventual consistency) in order to allow effectively unlimited horizontal scalability.

Overall my advice would be to figure out if you really need massive scalability, and choose your technology path accordingly.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.