MySQL Reference Manual for version 4.0.18.
7.1 Optimization Overview
The most important factor in making a system fast is the basic
design. You also need to know what kinds of things your system will be
doing, and what your bottlenecks are.
The most common bottlenecks are:
- Disk seeks.
It takes time for the disk to find a piece of data. With modern disks in
1999, the mean time for this is usually lower than 10ms, so we can in
theory do about 100 seeks a second. This time improves slowly with new
disks and is very hard to optimize for a single table. The way to
optimize this is to spread the data on more than one disk.
- Disk reading/writing.
When the disk is at the correct position we need to read the data. With
modern disks in 1999, one disk delivers something like 10-20 MB. This
is easier to optimize than seeks because you can read in parallel from
multiple disks.
- CPU cycles.
When we have the data in main memory (or if it already were
there) we need to process it to get to our result. Having small
tables compared to the memory is the most common limiting
factor. But then, with small tables speed is usually not the problem.
- Memory bandwidth.
When the CPU needs more data than can fit in the CPU cache the main
memory bandwidth becomes a bottleneck. This is an uncommon bottleneck
for most systems, but one should be aware of it.
This document was generated
by rdg (Feb 25 2004)
using texi2html