5.1 Optimisation Overview
The most important part for getting a system fast is of course 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 optimise for a single table. The way to
optimise 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 optimise 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.
Subsections
Add your own comment.