We are wondering whether to use SQL Server 2005 or MySQL as our database. The database will store the following information (for stocks & bonds):
1. Market activity information – price, volume, open, high, low, close for various instruments.
2. Fundamental information – balance sheet line items, income statement line items, news stories etc.
3. Technical indicator values – commonly used moving averages, RSIs etc.
Typical use scenario will be that a browser will request the following information:
1. Data for an stock/bond
2. Data for a certain day/time (across a bunch of stocks).
The predominant concern here is : SPEED. The application should very quickly be able to handle requests and spit out the necessary data to a .NET client.
Do you have any idea what might be the fastest solution in this situation? Can you ask your coders for any suggestions?
I am tempted to go with MySQL since it is free vs. high licensing costs for SQL Server.
The main reason I am considering SQL Server is because of a notion in my head that if it's a .NET/Windows application, SQL Server may be faster.
Thanks!
MySql gets its speed rep from the 'MyIsam' table type. But you don't want that for financial data. You want a stronger database. They have another several table types that are more robust and standardized, but not as fast.
Postgresql is plenty fast for large installations when well tuned. And it has good referential integrity, a long-enough history so you can trust it, and stored procedures. MySql is simpler to get started with.
I've never heard that SQL Server was faster, but I'd estimate they have very nice integration with .NET, as it's the same company. This nice integration will undoubtedly lock you in to using their database forever, though. And who knows how their price will change?
Whichever you choose, you will gain if you have at least one person around who has used the DB before and (for MySQL) table-type before. Even once in a while.
Paid consultants are available for any database you choose.