Yes, MySQL sucks (was: Re: Lockups and Semop panics)

2006-06-08 Thread Joachim Schipper
On Thu, Jun 08, 2006 at 10:19:31AM -0600, Bob Beck wrote:
 * Otto Moerbeek [EMAIL PROTECTED] [2006-06-08 10:00]:
  On Thu, 8 Jun 2006, Michael Erdely wrote:
  
   Hi,
   
   I've got a Dell Dimension XPS B866r desktop running as my web/mail
   server (recently upgraded to 3.9).
   
   Occasionally, after a seemingly random amount of time, the machine
   will do one of two things: it will either lockup/freeze where
   there are no messages on the console, but you cannot type, ping or
   access the box in any way (but the reset button) OR, since I have
   ddb.panic=0, it will reboot with the following message from my
   serial console:

  your system is running out of semaphore undo data structures. Try
  increasing at least kern.seminfo.semmnu. Other semaphore related
  sysctl's might need an increase as well.

   And mysqueal sucks...
 
   Your system may run out of other things as well given the bloatware
 you're running on it.  anything else I have mysqeal on and any
 significant amount of users I usually have to crank up quite a few of
 the default limits, both in the kernel and in mysql - I usually build
 a GENERIC with maxusers=128 to start, and then find the 80 bazillion
 knobs in mysqeal to turn to tell it to use file descriptors. no really
 use more than 100 file descriptors.  no really really use more than 
 100 file descriptors
 
   If you have a small number of users you may be fine. however
 seeing what you have there and 512 mb of ram, you may want a bit more
 if you have significant usage.
 
   Did I mention that mysqueal sucks?

To be fully honest, OpenBSD sucks quite a bit too, in this area
(massively threaded servers). There are good reasons for this suckage;
but MySQL does not perform quite as well on OpenBSD as it does on almost
every other system, so it's not entirely fair to only base one's opinion
on that.

Of course, I installed it first on Linux, and then found that it was
basically a fastish table (not a RDBMS - use PostgreSQL if you want
that). With a lot of crud. And, indeed, quite strange configuration
options. And which required one to install something like 3.x to build
the client part of 4.x, or something similarly inane (supposedly,
everyone used binary packages). And which has had quite a few security
problems of its own.

Finally, it's the wrong solution in almost every case. It's not a
database - again, use PostgreSQL. If you only want a table, you could
look at SQLite - I never used it, but it's supposedly much, much easier
and very fast. Of course, it's even less of an RDBMS than MySQL, but it
still works for PHP scripts and it's not like MySQL is much good for
anything else.
Never mind that PHP scripts are, themselves, better replaced by a proper
solution - like FastCGI - written in a proper language - i.e., almost
anything but PHP: Perl, Python, Ruby[2], C[1].

Joachim

[1] Some of these, especially C, would cost slightly more time, though,
which is an issue in some cases. However, I'd assert that anyone not
capable of writing in a real language shouldn't be writing
internet-exposed programs in the first place.
Additionally, I'm not allowed to do this. A good idea, probably - a
random PHP script can be understood fairly easily and just plonked down
on any commercial hoster; on the other hand, a heavily optimized C
program is less likely to be understood...
[2] It's been said that Ruby is very slow. I don't know anything about
it, really - if this is the case, its place in the list of real
languages might need reconsidering.



Re: Yes, MySQL sucks (was: Re: Lockups and Semop panics)

2006-06-08 Thread Craig Skinner
On Thu, Jun 08, 2006 at 10:54:01PM +0200, Joachim Schipper wrote:
  Did I mention that mysqueal sucks?
 
 Finally, it's the wrong solution in almost every case. It's not a
 database - again, use PostgreSQL.

Seconded. MySQL is only an SQLish interface to a file system, it is not
a database. Fine for keeping random banner ads in, but that is it.

-- 
Craig Skinner | http://www.kepax.co.uk | [EMAIL PROTECTED]