NYCPHP Meetup

NYPHP.org

[nycphp-talk] MySQL Case Study - Stanford Graduate School of Business (avail. at HBR Online)

Mitch Pirtle mitch.pirtle at gmail.com
Tue Mar 1 13:10:30 EST 2005


Hey Adam.

On Tue, 1 Mar 2005 12:40:43 -0500, Adam Fields <fields at hedge.net> wrote:
> On Tue, Mar 01, 2005 at 12:26:14PM -0500, Jayesh Sheth wrote:
> [...]
> > features ... such as stored procedures, triggers and views. [...] MySQL
> > [has not been useful for] the more transaction processing and business
> > intelligence applications that constitute the majority of enterprise
> > database deployments."
> [...]
> 
> Oracle has NEVER acknowledged the fact that on the order of 98% of
> database users don't even know about the existence of most of these
> features. They're "nice to have", but hardly critical for even a
> relatively large db-driven application.

I will never advocate Oracle for anything, but can tell you for
certain that there are many business applications that simply cannot
live without these features.

IMHO it is only certain circumstances that would dictate that you NOT
use these features.

For example, take your prototypical application for HR, where you
track employees, their vacation and benefits. With MySQL you are
forced to put all of the business rules in the application layer --
preferably PHP ;-) -- causing unneccessary duplication of effort and
providing more opportunity for error. Not to mention the added effort
of porting all that logic from the PHP web application to the .Net fat
client, or to the python server-side scripts...

Put all of the data-related logic in the database as stored procs, and
you can share that logic with any application that can connect to your
database. So the web front end is using the exact same rules as the
fat client for HR people and so on. The language used is no longer of
consequence, you are free to choose as you see fit.

> Oracle's great, but it's overkill for all but the most demanding
> applications.

It's overkill for anything, even nuclear particle research. I mean,
once I populated a table with java methods as plaintext, constructed a
SELECT, compiled and executed the results of the query right in the
database. Why in the world would you need this? LOL

> > So, as developers, what do you think? Does MySQL meet your needs
> > sufficiently? Do you see it growing along with your needs? If you do not
> > use MySQL, which database do you use and why? Any thoughts regarding
> > IBM's new alliance with Zend to bring DB2 and Derby (Cloudscape) support
> > to PHP and how this might affect MySQL's market share among PHP users?

A very good friend of mine is working over in Jersey at a commerce
portal for retailers in the fashion industry. We are both fond of
PostgreSQL, but he is happy to stick with MySQL. His explanation is
that "as our needs and requirements grow, MySQL is growing with us.
When we will really need <feature>, MySQL will probably support it."

I want to love MySQL, I really do, but I am a huge proponent of stored
procedures, triggers and views. Until then my default answer is
PostgreSQL, which (to me at least) is MySQL with all the missing stuff
added.

The only thing keeping me from advocating _only_ PostgreSQL is the
fact that I am also a huge supporter of database abstraction for web
applications that are distributed (like Mambo), where platform
neutrality is a desperate need.

> MySQL is a fantastic alternative. It takes some customization work to
> make it perform very well for specific cases, but I can't complain,
> since I do a fair amount of MySQL optimization analysis work. It can
> be made to scale >very< well with the right attention to architecture,
> configuration, and usage.

I could never have run ClassMates.Com without MySQL. With the database
on a dual P-III with the world's slowest RAID controller, I managed to
server over 1 million distinct visitors every day without mishap.
Tried on a quad alpha with four times the hardware, and didn't have a
chance. And I went through certification as an Oracle DBA just for the
exercise, so I did not just install Oracle and test against the
default, I recompiled the kernel and hotrodded the heck out of that
machine.

MySQL on the quad alpha, however, was something to behold ;-)

Ultimately, IMHO there are two FOSS databases that cover the whole
gamut of needs. If you need embedded, distributed, clustered, just
plain huge, or just plain fast... For me the combination of MySQL and
PostgreSQL has made commercial databases a non-issue.

-- Mitch



More information about the talk mailing list