Robin Schumacher is MySQL's Director of Product Management and has over 13 years of database experience in DB2, MySQL, Oracle, SQL Server and other database engines. Before joining MySQL, Robin was Vice President of Product Management at Embarcadero Technologies.
The admission I'm about to make will likely cause me to lose some friends/colleagues in the open source world, but I have to be honest: I like using Microsoft Windows. Except for Windows 3.0-3.1, I always have. Further, I personally much prefer managing databases on Windows than Unix and will also give Windows the nod over Linux in certain areas. See, I came from managing DB2 on the mainframe to running data warehouses with Teradata on their proprietary platform, and then did a long run with Oracle on UNIX (AIX and HPUX). It was during this last period of time that I discovered that I really liked managing databases on Windows, mainly for two reasons.
First, I vividly remember migrating a large Oracle application away from a very expensive UNIX box to a quad-CPU Windows machine that cost exactly one quarter of the UNIX setup. I sat in amazement as the Windows/Oracle combination outran its UNIX counterpart 98+% of the time. The funniest part of that experience was watching the UNIX sales rep go into overdrive in planting seeds of doubt how the Windows system would crash daily, not perform well, etc. (none of that came true).
Second, it was during this time I started using Microsoft SQL Server very heavily and it quickly became my preferred database platform of choice. If I had the option back then, any new system went to SQL Server because I found it to be far easier to manage than Oracle, just as powerful in terms of the features I needed, and it was pretty darn reliable. I thought I'd never find another database/platform combination that was easier/better to use.
I was wrong. As many who use MySQL, I started with Linux as my platform and was pleasantly surprised at not having to wade through complicated installation scripts/patches to get things working as I had found with the other Linux DB's I used. The first time I installed MySQL on Linux, I was at a MySQL client prompt in less than ten minutes, which was a breath of fresh air to me.
But then I started using MySQL on Windows and got hooked. I honestly have to say that, now after years of using MySQL on Windows, I find it to be my favorite database/platform combination of choice. In my opinion, it's easier to use than Microsoft's own database on their platform, the performance and feature set will meet 90+% of the needs that Windows/Web applications have, it consumes less resources than SQL Server, and the reliability is stellar.
Let me show you why I believe this to be the case and why, if you haven't started using MySQL on Windows yet, you really should think about doing so.
If I asked you what the most popular platform is in terms of MySQL Server downloads for any given month, what would you say? Red Hat/Fedora? Suse?
Guess again. Take a look at the download number just for MySQL 5.0 during the April 1 - May 1 2007 timeframe that I pulled from our internal downloads reporting tool:
If you never thought MySQL was popular on the Windows platform, these numbers alone should give you pause. Nearly 600,000 downloads of Windows in a 30 day period compared to all Linux combined at under 250,000. Of course, this doesn't say whether those downloading MySQL for Windows are both developing and porting to production on Windows, developing on Windows and moving to another platform like Linux, etc. And you must also keep in mind that many use MySQL from their Linux distributions, so that must also be factored in. However, numbers from our 2006 end-of-year surveys showed 52% of the MySQL Community using Windows for production systems (#1 place), 42% of our Enterprise customers using Windows for production MySQL systems (2nd place behind RHEL), and 66% of our OEM/embedded database customers using Windows for production applications (#1 place).
The bottom line is that MySQL is extremely popular on Windows, both for development work and production systems.
MySQL AB has a very talented set of engineers who have put together a simple yet flexible visual installation/setup program for Windows. Windows is a primary port for MySQL, so we ensure that MySQL supports all key Windows versions and is a cakewalk to install and configure on the platform. In addition, all MySQL Enterprise (our subscription service of enterprise-ready software) service packs, monthly rapid updates, and more are included for Windows.
Of course, there is a very nice GUI installation program you can use to install and setup the MySQL Server:
Using the MySQL Windows installer, it takes just three mouse clicks to install the entire server, with the time involved being under two minutes. Once installation is complete, an optional GUI wizard then guides the user through setting up the few options that exist to configure the server (storage, security, auto-start, Windows service creation, etc.)
Note that it is extremely easy to install, setup, and run multiple instances and versions of MySQL on the same Windows box. To run multiple instances, you only need assign each instance a different port to run on. Managing different versions and instances is very easy and done through either MySQL-supplied interfaces or the standard Windows service manager.
In addition to the server, Windows installation packages exist for all the various connectors (ODBC, .NET, JDBC, etc.) as well as the MySQL development and management tools.
Both developers and DBA's will find working with MySQL on Windows a very easy task. Developers will find that connecting to a MySQL instance on Windows no different than Linux, Macintosh, or any other platform.
Those using Windows for both their development machine and database server will be able to hit the ground running quickly with several supplied developer aids. First, MySQL connectors/drivers are very easy to install and configure on Windows. Next, those doing PHP, C, Java, .NET, Ruby, or other development work will be able to use their standard dev tools or the ever-trusty MySQL command line client interface to write/test queries against the server.
Of course, GUI query tools exist as well such as the MySQL Query Browser that provides a very nice tabbed interface to design and run queries in written or drag-and-drop style, build stored procedures, edit data, and much more.
Developers using Microsoft Visual Studio have a MySQL-plugin that they can use to visually build MySQL-enabled applications for Windows. The plugin is free and available to all Visual Studio users and allows for drag-and-drop of data objects onto VS forms, querying of data, and other standard data management tasks.
DBAs also have visual tools they can use to manage MySQL on Windows. The MySQL Administrator tool helps DBAs graphically manage security, tables/indexes, monitor performance, and perform easy backup and recovery operations.
In addition to the MySQL Administrator tool, DBAs can monitor MySQL operations on Windows using the standard Windows System Monitor as well as the Task Manager.
When it comes to getting data to and from different servers, DBAs (and developers) can use the graphical MySQL Migration Toolkit to move data between different MySQL instances or port an existing database from another platform (Oracle, SQL Server, Sybase, etc.) to MySQL. The Migration Toolkit is written in a step-by-step fashion so migration operations are a breeze to perform.
Coming soon for the Windows platform (as well as others) will be MySQL Workbench, which is a very nice data modeling tool that allows for both logical and physical design. Reverse engineering of MySQL databases, along with Oracle, SQL Server, and many others is included as is forward engineering of MySQL syntax to create schemas and their associated objects (tables, indexes, etc.).
There are also plenty of third-party tools that support MySQL on the Windows platform. A couple of my personal favorites are SQLYog (for query development and administration), Quest TOAD, Spotlight, and Benchmark Factory (Administration/development, monitoring, and performance benchmarking), and DBArtisan from Embarcadero (which I helped develop several years ago).
There are very few MySQL limitations on Windows, with the most notable being that the MySQL Cluster product currently does not run on Windows, but is Linux only (for the time being). Other than that, there's really not much else to say on the Windows restrictions front concerning storage engines - all other storage engines operate just fine on Windows. Further, all core MySQL features such as replication work no differently on Windows than on any other operating system.
For a breakdown of some of the other Windows limitations, see the MySQL manual at: http://dev.mysql.com/doc/refman/5.0/en/windows-vs-unix.html.
So as you can see, MySQL on Windows is a smart choice for those wishing to have a very reliable, high-performance, and easy-to-use database power their WIN applications. If you're using MySQL on Windows today, I'd love to hear from you on how it's going and why you chose MySQL on Windows - please shoot me a note at rschumacher@mysql.com.
Thanks again for your support of MySQL!
Read and post comments on this article in the MySQL Forums. There are currently 11 comments.