Need an opinion here... I own a copy of Microsoft SQL 2000 Standard Server, but want to buy some new toys. I buy toys by selling the old ones for the cash so I don't dip into savings or the paycheck. I've never screwed around with MySQL before, so I'm not very familiar with it... Question is: Should I sell my copy of MS SQL 2000 and switch over to MySQL so I can buy new toys or not?
Oy vey, whatta question. Disclaimer: I am not a DBA. I've supported MySQL for about three years now, mainly on Linux and FreeBSD. I know it runs on windoze, but I never bothered with that. I became intimate with MSSQL this year at work. We replaced a mainframe DB2 installation with a MSSQL (MSSQL Enterprise running on Win2k Advanced Server) running on a Dell 4-way with 2.0GHz Xeon MPs, 8GB physical RAM, and a quarter terabyte of fibre-channel attached disk. My job was benchmarking it, and tuning it. In my estimation, both are excellent products. But what you get in the box (as it were) is wildly different, it's a complete apples-> oranges deal. Ferinstance, MSSQL comes with a magical widget called Data Transformation Services (DTS) in the box. If you are into Data Warehousing, this is what's known in that jargon as an ETL tool (extract, transform, and load). It can do things like turn any data format into tables or vice versa, with the full power of VBA behind it. An unbelievable freebie. You also get their Data Analysis Services widget, which is a low-rent Data Warehousing toolkit in its own right, for free in the box. Honestly, either one of those is worth the purchase price of SQL server alone. And SQL is a damn good RDBMS. Now, lest you think that suddenly I started liking MS products: In the beginning, there was Watcom, which morphed into Sybase, that got licensed to MS as SQL server 6 if I recall correctly. SQL server 2k is radically improved over that original system, but MS didn't invent this product. They took a decent core and made it vastly easier to use, and more self-tuning than any competitive RDBMS available. (I don't want to go onto a tuning tangent here, but I spent a lot of time on that.) MySQL is an excellent RDBMS for medium projects. It will readily scale to tens of millions of rows on decent hardware. Version 4 has some very enticing features. It's highly optimized for reads. But you don't get all these goodies. And it's missing several things that developers would consider standard, like stored procedures and views (let alone the extensions to those that MSSQL has, like distributed partition views and so on). MySQL is rock-solid stable. If all you need is a reliable environment to get data in and out of tables, with reasonable efficiency, and no stringent high availability requirements, then MySQL is 100% adequate. but it doesn't even come close to being as featureful nor as scalable as MSSQL. It's not even really fair to compare them. So what kind of work do you need to do? Do you reach for stored procs or views much? Or do you just run straightforward SQL statements? Do you need enterprise class backup or high availability features? Here's a little screenshot from my Dell I was playing with:
Hahaha... Yea, but then, what did they invent? They bought DOS from a firm in Seattle and "borrowed" the windows concept from Apple & Xerox. Nothing REAL major. A good precentage of the work I do is just data storage and retrieval. I'm not even close to being a DBA myself and wouldn't know how to code a built-in statement or query if my life depended on it. All my code is within an asp or asp.net page to control the DB. There is an underlying question I was asking when I'm conparing MS and MySQL. I'm in the process of convincing my employeer, a 500 or so bed non-profit hospital) to switch from their Windows / MSSQL to a more open source enviornment. I don't think I'd convince them to switch to from a Windows house to a *nix house because I'm the only one here with a background in *nix, but if I can switch from MS SQL to MySQL, it would eliminate a ton of licenses and free up our budget for new hardware. There are a few mission critical DB's that NEED to be online, available and scalabe, but the bulk of them are smaller DB's that could feasably be Access DB's without much of a problem. I've been here for about 1.5 years and am trying to mop up the mess my predicessor left with his multiple DB's on seperate servers and combine them into a single, powerfull, dedicated DB server. Here, I would definetely need high availability.
Hmm MSSQL and MySQL are really in two different leagues... In terms of features anyhow - MSSQL is like practically enterprise level whereas MySQL was designed for home users and small websites... Having said that, if your database is simple enough that MySQL's limited SQL implementation can handle it, and you dont plan on having millions of rows accessed very densely, MySQL will probably outperform MSSQL. If you need a more heavyweight alternative to MySQL look at Postgres, after that youre pretty much on ot Orracle etc. MSSQL hasnt exactly had a golden security record - worms, viruses etc have all hit it in the past.
Yeah, MSSQL is much better if you're using it for a very large amount of data. MySQL is a lot more friendly and is very efficient and quick, plus it's free. However, there are performance problems with MySQL when the databases get very large. Anyone that played the EVE beta (MMORPG with a MySQL db for the data) will know how frustratingly slow it ran at times. That was 99% due to the MySQL database just not being able to withstand the load. As has already been said, MySQL is very optimised for reads which is why it's used by so many websites. It's just a matter of weighing up the pros and cons.
actually even in enterprise sized setups MySQL outperformed MSSQL in just about every benchmark.. If i recall the only DB to come close was oracle's latest product. MySQL even has a version to fully utilize the capabilities of the AMD Operton chips.. -scoob8000