> I'm a system administrator for a small (200 people) branch of a large
university/medical school. I've worked with MySQL and use it as my database
of choice for web-based dynamic content. I would not consider myself an
experienced, professionally-trained, knowledgeable database administrator,
more of a database user who's had to administer his own database systems
because no one else's around.
> My organization is trying to decide on an SQL engine for general purpose
database work within our organization. The one professional database
administrator we have works mainly in MS Access, but is looking forward to
building on her beginner-level understanding of SQL and becoming an SQL
administrator. Right now, the largest database in our organization is a
flat-file structure with less than 500,000 records in it, which could
conceivably grow ten-fold in the next five years. The organization hired an
outside consultant to evaluate which SQL engine to go with. This is what he
sent to us:
> MySQL is an open-source database management system (DBMS). It
> uses client/server architecture and is a multi-threaded,
> multi-user database server. MySQL was designed for speed;
> therefore, it does not provide many of the features provided
> by relational database systems, such as sub-queries, foreign
> keys, referential integrity, stored procedures, triggers, and
> views. In addition, it contains a locking mechanism that is
> not adequate for tables containing many write actions
> occurring simultaneously from different users. It is also
> lacking in reference to support for software applications and
> SQL Server 2000 is a complete Relational Database Management
> System (RDBMS) that also includes integrated analysis
> functionality for OLAP and data mining. SQL Server 2000 meets
> the data and analysis storage requirements of the largest
> data processing systems and commercial Web sites, yet at the
> same time can provide easy-to-use data storage services to an
> individual or small business.
> The architecture of Microsoft SQL Server supports advanced
> server features, such as row-level locking, advanced query
> optimization, data replication, distributed database
> management, and Analysis Services. Transact-SQL (T-SQL) is
> the SQL dialect supported by SQL Server 2000.
> I don't know whether the consultant wrote this himself, or if it came from
somewhere. It could be Microsoft advertizement, for all I know. Most of the
terms aren't familiar to me, like "sub-queries" or "referential integrity".
I feel out of my depth evaluating this comparison.
Referential integrity is supported for "InnoDB" type tables - with MySQL,
each table can
have a different type, each table handler (in the MySQL system) can handle
features. With InnoDB, there's Referential integrity, transaction support
and and also
a different locking mechanism - which is more suited for lots of readers
> My questions are:
> 1. Is this a fair comparison of MySQL and MS SQL Server 2000?
Fairly fair :-)
> 2. Is this up to date with the current status of MySQL?
Triggers, views and Stored Procedures are expected to be included in MySQL
The next version of MSSQL will include a new locktype/transaction isolation,
one which works pretty much the same as InnoDB -> versioned locking.
> 3. Would the deficiencies pointed out in MySQL, if true, apply to the type
of work we envision? Granted, I haven't given you all much information about
what we hope to do with an SQL engine, but I don't think it will be very
If it's not "very sophisticated", MySQL will do just fine. In my opinion.
other free and open source DBMSes as well, that do have procedures,
views, subqueries and the like.
Database Workbench - developer tool for InterBase, Firebird & MS SQL Server.