Mairhtin O'Feannag wrote:
What are the deficiencies of MySql that I and my clients should be
aware of?
Well, in my opinion this is a product that was at the right place at
the right time - and surged in popularity along with php, etc a few
years ago. It can be simple to use, but has such tremendous
disadvantages that many developers are now leaving it for its open
source rivals (postgresql & firebird). Anyhow, here's my $0.02.
1. integrity problems - of various types:
a. tons of silent errors in which data is truncated, converted,
etc without an exception passed to the application. Many of these are
documented widely, including at: //sql-info.de/mysql/gotchas.html
b. the leadership at this company has stated for years that 99%
of the developers out there don't need transactions, subselects, views,
etc. This was misleading from the begining - and they're still rushing
to quickly add these basics from 20 years ago into their product. In
the meanwhile, many of these newly-added features are still very beta -
such as the way that they get transactions through a completely
separate storage library (innodb). Use of this critical component
drastically reduces performance, and isn't completely integrated into
mysql.
2. performance issues:
a. it's very much oriented towards read-only transactional
queries (and it can be very fast at this). However, not many
applications meet that need except perhaps content management. It has
a much more difficult time with a balanced workload than most other
products in this category.
b. there are almost no reporting/dss features: no partitioning,
no bitmap indexes, no parallelism, etc. This means that a 2-way
oracle/db2 server using partitioning/mdc could easily out-perform an
8-way server running mysql. And these types of queries are becoming
increasinly common within operational/transaction applications - so
this isn't just a data warehousing issue.
3. availability & reliability:
a. mysql can maintain reasonable availability numbers - but lacks
a credible clustering offering for higher numbers.
b. given its silent errors, and penchant for associated data
corruption problems - it's entirely possible for mysql to stay up and
continue to serve data - in spite of the data being corrupted.
4. cost:
a. the licensing cost for mysql is about the same as any other
entry-level database. I think the only really inexpensive situation is
when you need quite a few small open-source databases. Online backups
are an additional cost,.
5. portability:
a. the missing features in mysql (views, etc) often require that
applications are written differently than if they were to be written
for a more full-featured database. This limitation results in
application complexity, database complexity and performance impacts.
Should the application need to be moved to another database for
improved performance, it may also require a more significant rewrite
than if it was built for a different database product.
b. lack of ansi compliance: mysql ab has shown a considerable
disregard for ANSI SQL standards (uses '#' instead of '--' for
comments, etc, etc). MySQL is probably the least compliant RDBMS I've
seen since the 80s.
6. Consistency: since there are so many data management jobs that
mysql can't do - that db2, oracle, etc can - it's not unlikely that a
shop that uses mysql will also have to use a second database as well.
As the number of database products grows - so does the labor cost to
maintain and develop for them. And since the entry-level versions of
db2, etc are very inexpensive (can be less than MySQL), a savings can
often be made on the labor side by just going with db2.
Right now, MySQL does have a few things going for it - primarily
marketing & momentum. It always gets press when open source databases
are mentioned, and most folks have heard of it. And it is improving
rapidly, though I suspect that it's years away from delivering what we
take for granted from most other products in this category.
Probably a bigger threat to db2, oracle, and sql server are Postgresql
& Firebird. Both are free and reasonably featured. There's still a
lot that DB2 & Oracle offer over these two products, but the sell has
to be harder if you're talking small departmental servers, embedded
databases, etc.
kenfar