Fog Creek Software
Discussion Board




Mysql - Good or bad?

Hi,

I am read/heard a lot of mixed thoughts on mySQL.

I am looking at it and Advantage Database server as possible databases for my future apps.

MSSQL Server will be too expensive for my customers and also it will only run on windows.

I know that stored procedures are coming in a future Mysql version but how specfic to each database are they or is there a standard?

Any thoughts?

Mike
Wednesday, January 01, 2003

Try Firebird (aka open souce version of Borland Interbase) instead.  Much better in terms of stored procedures, real transactions support, etc.  http://firebird.sourceforge.net

GiorgioG
Wednesday, January 01, 2003

There is no standard language for writing stored procedures in databases, as far as I know.  Each database has its own stored procedure "language".  Thus portability of your application from one back end to another is diminished when you use stored procedures.  Of couse, speed and efficiency of the application itself increase, so you've got to deal with a tradeoff there in deciding what you want to do.

In multi-tier programming one way of thinking is that it's often better to put the equivalent of stored procedures outside the database on the middle-tier (often called the "business logic" layer).  Some of the benefits of stored procedures are retained, since at least this "stored- procedure-like" code is being run close to the database server, if not on the same machine.  And at the same time, portability of the app is relatively unaffected, since if done right database back ends can be exchanged one for another fairly easily, at least in theory.

Herbert Sitz
Wednesday, January 01, 2003

Bad

Anonymouse
Wednesday, January 01, 2003

You can use PostgreSQL which has PLSQL capabilities.

 
Wednesday, January 01, 2003

Postgres does not run well (if at all) on Windows.  I don't think the Cygwin 'hack' (that's all it is as far as I'm concerned) is good for a production-level solution.

GiorgioG
Wednesday, January 01, 2003

You are correct.  Poke around on www.skippingdot.net

It is an access developer gone awry.  He crossed to the dark side;) and is trying to move to open source tools.  He finally gave up on Postgres on Windows

Ryan Ware
Wednesday, January 01, 2003

Use Interbase/Firebird. Period.

Slava
Thursday, January 02, 2003

Hey,

Postgres: A fantastic database that has support for EVERYTHING except replication. Now it (replication)  has been recently finished, but I'm still not secure enough in it to consider battlefield ready. There are other replication "schemes" that people are applying to postgres, but I'd rather have one that is built into the DB and proven.

Also, Postgres as someone else said doesn't run well on Windows.  I wouldn't run it on Windows in the first place. :-) 

MySQL:  MySQL does now have support for everything EXCEPT stored procedures. Some don't think this is an issue. Some do. But getting on with it, MySQL through the use of the Inno Base table handlers now has much better referential integrity, FK, and is transactional. Also, and very important to me, it's replication, though simple master-slave (you can have as many slaves as you want), is proven.

Furthermore, Yahoo and Slashdot have stories of days where they saw huge amounts of traffic for the db servers to deal with.  When you get right down to it MySQL hung!  There were crashes, but many of these seem to have been related to hardware issues.

When using MySQL with tables that often see deletes, optimize table is a must! 

It seems like most of the complaints with MySQL surround the use of MyIsam table handlers.  But you don't have to use them!  The Inno tables are superior. There is also squawk about how MySQL falls apart at around 500K lines which I know is not true as our servers at this point have around 4 million lines and over 700K lines in certain tables alone.

And of course, the price is good.  :-)

Cheers,
BDKR
BDKR

BDKR
Thursday, January 02, 2003

Yes

Just me (Sir to you)
Thursday, January 02, 2003

I recommend MySQL completely. Web application database development is my specialized area and I frequently use MySQL.

Just looking at a few of the sites that I have worked on gives you an idea of how stable it can be. One site has a single database with 6 million rows - and another has 4 million rows in one single table. Another site constantly maintains around 400 concurrent active users at one time. And I know of many sites that are much bigger using MySQL.

I have found it to be a very stable database server. Yes, it has it's problems, but which server doesn't? It has a lot going for it - it's free, for one thing. It's in very wide use now and is commonly installed on Linux and Windows web servers (so it's a safe standard database to go with if you're developing a web application for distribution to lots of different users/servers).  It holds up very well to lots of users online, on the right hardware of course.

James Ussher-Smith
Thursday, January 02, 2003

The question of using MySQL seems to usually boil down to one dilemma:

MySQL isn't as robust and can't handle as much data as the most robust database products on the market.

So, you can ask yourself two questions:  Will your tables see millions of records?  Do you want to use "advanced" database features like stored procedures (e.g. will you be going beyond standard SELECT, INSERT, DELETE, etc. statements)?  If you'd answer "yes" to either of these questions, MySQL is probably not for you.  Otherwise, MySQL is a great solution.

IMHO, at least.

Brent P. Newhall
Thursday, January 02, 2003

MySQL should work for 90+% of projects. Many people over-estimate their true needs in terms of "real" transactions, scalability, etc.

If you are developing a web app and even more importantly if you intend to sell or isntall that app for others, MySQL is by far the best call since virtually every hosting provider supports MySQL.

pb
Thursday, January 02, 2003

MySQL vs. PostgreSQL:

MySQL is readily-available, and works fairly well.  Recent versions have apparently been adding important "details" like transaction support.

On the other hand, I've seen MySQL's query optimizer die in flames on more complex queries (in summer 2001).  I ported one application from MySQL to PostgreSQL and saw certain important queries go from about two minutes to about ten seconds.

Both databases are free--and reasonably standards compliant--so you might as well test both for your application.

Eric Kidd
Thursday, January 02, 2003

About MySQL:

I remember back when it didn't have transactions, they used to say that transaction were "bad for performace" and "not really necessary".

Funny bit of hypocrisy... :)

alekzander
Friday, January 03, 2003

Thanks for the info guys.

Its certainly food for thought.

My requirements are not very large. My current app relies on DBF files.

Mike Grace
Friday, January 03, 2003

>>>
About MySQL:

I remember back when it didn't have transactions, they used to say that transaction were "bad for performace" and "not really necessary".

Funny bit of hypocrisy... :)
<<<

There is no hypocrisy here. The table handlers that are transaction capable are not created and maintained by the MySQL team proper.  Furthermore, they havent changed their stance on Atomic operations.

From the manual:
>>
However, the non-transactional table types in MySQL Server such as MyISAM follow another paradigm for data integrity called ``Atomic Operations.'' Atomic operations often offer equal or even better integrity with much better performance. With MySQL Server supporting both paradigms, the user is able to decide if he needs the speed of atomic operations or if he need to use transactional features in his applications. This choice can be made on a per-table basis.
<<

The manual is your freind. :-)

Cheers,
BDKR

BDKR
Friday, January 03, 2003

Does anyone know a good place where performance benchmarks comparing MySQL with Firebird and any other databases might be?

In particular, I'm wondering how well these databases perform under load, how well they scale, etc. War stories would be great too, but obviously relevant benchmarks are very nice to have.

Rob
Friday, January 03, 2003

Firebird V1.0 is relesed just now, i am doubtful that its comparision is been done against MySQL.
As far as performance of MySQL is concerned i stand by them.I got good performance when site hits were heavy.

BSA
Tuesday, January 07, 2003

*  Recent Topics

*  Fog Creek Home