MySQL, like a lot of other software, has many knobs you can
tweak. Most of these knobs may affect behaviour, but more
importantly most affect the memory usage of the server, so
getting these settings right is very important.
Most of MySQL’s memory is really used just as a cache, in one
form or another, information that otherwise is on disk. So
ensuring you have as large a cache as possible is important.
However, making these memory sizes too large will trigger the
server to start swapping and possibly can cause it to crash or
cause the kernel to kill the process when it runs out of memory.
So that’s something we want to avoid.
Certain settings affect memory allocation on a per
connection/thread basis, being bounded by thread_cache_size and
max_connections. If you configure for the worst behaviour
(max_connections) you may end up not actually using all the
memory you have available, memory which normally could be …
[Read more]