Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Jan 2002 23:53:07 +0100
From:      "Rogier R. Mulhuijzen" <drwilco@drwilco.net>
To:        jgrosch@mooseriver.com, hackers@FreeBSD.ORG
Cc:        freebsd-questions@FreeBSD.ORG
Subject:   Re: [nicole@unixgirl.com: What is biord?]
Message-ID:  <5.1.0.14.0.20020116233750.02874e18@mail.drwilco.net>
In-Reply-To: <20020116141825.A45998@mooseriver.com>

next in thread | previous in thread | raw e-mail | index | archive | help

>
>  Hello
>  I have a mysql database that seems slow and when looking at it in top it
>always seems to be in a state of biord
>  What the heck is biord I can't find this anywere
>
>   Thanks

Block I/O ReaD (if I'm not terribly mistaken. I'm thinking it could be Buf 
IO too, but that would be confusing to the layman =) )

Basically it's doing a lot of read IO or your disks are very slow.

Which is not a big surprise because databases normally spend a lot of time 
in disk IO.

I'm not up to speed on MySQL tuning, but I've done a fair amount of Oracle 
tuning, and there's two approaches that can be taken:

1) lessen the amount of IO.
2) make the IO faster.

Making it faster can be the most expensive in money (buying SCSI RAID 
arrays), and not always as effective.
Lessening the IO is usually a little more costly in the time department, 
but can be a LOT more effective.

When lessening the IO, again there are mainly 2 things to be done.

1) have more blocks buffered.
2) make queries use less blocks

More buffering is an easy fix on a machine with lots of memory. I am not 
familiar with MySQL's internals, but Oracle uses its own buffercache 
(optimized for RDBMS usage) and you can specify how big that should 
be.  When a machine has 512megs of RAM and the database is the only thing 
on the machine, making the buffers take up half of that is not a silly 
thing at all. (You wont believe how often I come across machines that are 
ill configured that way. HUGE amount of RAM, and only 5% is used...)

Making queries use less blocks is the hardest part, but a lot of the times 
placing indexes on columns that are used in joins or in WHERE clauses can 
make a huge difference. Also not using too many tables in a single query 
helps (eliminate wannahave columns in favor of faster musthave results).

You could always find some MySQl guru's of course =)

I hope this sheds a little light on the subject,

         DocWilco

P.S.: this really belongs on freebsd-questions@freebsd.org so I'm cross 
posting this answer there


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5.1.0.14.0.20020116233750.02874e18>