We start with system-level factors, because some of these decisions must be made very early to achieve large performance gains. In other cases, a quick look at this section may suffice. However, it is always nice to have a sense of how much can be gained by changing things at this level.
The default operating system to use is very important! To get the best use of multiple-CPU machines, you should use Solaris (because its threads implementation works well) or Linux (because the 2.4 and later kernels have good SMP support). Note that older Linux kernels have a 2GB filesize limit by default. If you have such a kernel and a need for files larger than 2GB, you should get the Large File Support (LFS) patch for the ext2 filesystem. Other filesystems such as ReiserFS and XFS do not have this 2GB limitation.
Before using MySQL in production, we advise you to test it on your intended platform.
Other tips:
If you have enough RAM, you could remove all swap devices. Some operating systems use a swap device in some contexts even if you have free memory.
Use the --skip-external-locking
MySQL
option to avoid external locking. This option is on by
default in MySQL 5.0.
Note that the --skip-external-locking
option does not affect MySQL's functionality as long as you
run only one server. Just remember to take down the server
(or lock and flush the relevant tables) before you run
myisamchk. On some systems this option is
mandatory, because the external locking does not work in any
case.
The only case where you cannot use
--skip-external-locking
is if you run
multiple MySQL servers (not clients) on
the same data, or if you run myisamchk to
check (not repair) a table without telling the server to
flush and lock the tables first. Note that using multiple
MySQL servers to access the same data concurrently is
generally not recommended,
except when using MySQL Cluster.
You can still use LOCK TABLES
and
UNLOCK TABLES
even if you are using
--skip-external-locking
.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.