I must come to a decision which database server for my next project, however the simple decision to make use of MySQL like the majority of the projects Used to do is harder now, because I expect greatly records.

The database will store a person list, another irrelevant tables, and also the 4g iphone, some user-collected data. Let us say, basically have 6000 customers reacting to some quiz about one another. Simple math implies that from individuals customers, if each one of these completes the quiz about everybody (as well as in my project that's 99% certain may happen) I'll finish track of 35.99million records(they'll exclude themselves and during this situation the procedure is 6000*5999). Regrettably 6000 maybe is really a few, the actual one growing daily.

Things to choose? MySQL and perhaps if things go well and also the project develops to grow it inside a cluster? PostgreSQL, MSSQL? Oracle?

I have find out about these, they all have it's benefits and drawbacks, but nonetheless have no idea things to choose. The benefit of MySQL and PostgreSQL is obviously, the beginning cost of $ that is pretty nice inside a usual self-funded startup.

Any opinions, bits of advice? Should you experienced this case inside your experience as designers, I'd like to know what you think.

MySQL will handle 35 million records not a problem. Be worried about scalability when you are getting there. It is simple to add raid hard drives backing your database tables, and when you actually get large you can aquire a compellant SAN which will scream... Don't be concerned concerning the DB engine around the actual hardware.. MySQL rocks for all of us with countless records.

Nowadays, free is not something which differenciates between databases anymore. Both Oracle and SQL Server have free versions, however the restrictions is assets - 4 GB database, RAM &lifier single CPU utilization. Countless records isn't a concern - it's what datatypes you are using.

I saw the Operations comment about not liking MS software - that's your prerogative, but while using free versions of either Oracle or SQL Server do take advantage of seamless transition to trendy versions from the particular database.

Personally, my choice could be either Oracle or SQL Server due to IMHO, real feature factors like hierarchical query support, subquery invoice discounting/CTE, packages (lengthy before I recieve worried about functions/methods), full text searching, xml support, etc.

I have didn't have problems handling tables as huge as 36,000,000 rows on MySQL and Oracle.

Just ensure that you index the correct posts, run Describes for the queries, and keep proper design concepts.

Use MySQL as it is free and you've got knowledge about it.

Besides for me it matters more about the way you design the tables than which database you utilize.

35 million records can be simply handled by MS SQL Server (presuming proper database design, indices, etc.). You can begin using the free SQL Server Express edition and then, if you want, you are able to upgrade fully version which assists clustering, etc.

SQL Server Express comes with some restrictions - single CPU, 1 GB memory, max 4 GB database size along with a couple of other activities. I am unsure how rapidly these restrictions will end up an issue but you could move fully version advertising media are into them.

MySQL(i) &lifier Postgre

  • $ of costs
  • large community
  • many lessons
  • well documentated

MSSQL

  • You will get "money" from MS should you promote that you're using MSSQL (secret information from some companies I labored for)
  • MS tools work perfectly
  • Complete tool set from C# IDE over .Internet lib to Home windows Server 2003

Oracle

  • Professional and commercial provider
  • Used by lots of large companies (I additionally learned about Blizzard (Wow) using Oracle)
  • - costly

The ultimate decision is dependent around the special needs of the project. Be a fast listing of things , which are Essential for any project (e.g. quick carried out queries) and appear up which Database pros are matching probably the most for your needs.

Things are about design. SQL Database are a handful of type of cars, you just need to know which component needs to go here and which there. Create a obvious design and also you will not have a problem with them.