We use GNU Autoconf for the list of operating systems supported by MySQL. Therefore, it is possible to Port MySQL to all modern systems using Posix threads and C ++ compilers. (The server must support threads. If you only compile the client code, you only need the C ++ compiler ). We mainly use and develop this software on Linux (SuSE and Red Hat), FreeBSD, and Sun Solaris (versions 8 and 9.
It has been reported that MySQL can be compiled successfully on the combination of the following operating system/thread packages. Note that for many operating systems, native threads only support the latest version.
? AIX 4.x and 5.xwith native threads.
? Amiga.
? Include BSDI 2.xof the MIT-pthreads package.
? BSDI3.0, 3.1, and 4.xwith native threads.
? Digital Unix 4.xwith native threads.
? Include FreeBSD 2.xof the MIT-pthreads package.
? FreeBSD 3.x and 4.xwith native threads.
? FreeBSD 4.xwith LinuxThreads.
? HP-UX 10.20 with DCE thread or MIT-pthreads package.
? HP-UX 11.xwith native threads.
? With LinuxThreads 0.7.1 + or glibc 2.0.7 +, Linux 2.0 + is suitable for various CPUs.
? Mac OS X.
? NetBSD 1.3/1.4 Intel and NetBSD 1.3 Alpha (GNU make required ).
? Novell NetWare 6.0.
? OpenBSD with native threads> 2.5. OpenBSD that includes the MIT-pthreads package <2.5.
? OS/2 Warp 3, FixPack 29, OS/2 Warp 4, FixPack 4.
? SCO OpenServer 5.0.X with the latest FSU Pthreads port package.
? SCO UnixWare 7.1.x.
? SCO Openserver 6.0.x.
? SGI Irix 6.xwith native threads.
? There are native thread versions of Solaris 2.5 and later on either or x86.
? Including the SunOS 4.xof the MIT-pthreads package.
? Tru64 Unix.
? Windows 9x, Me, NT, 2000, XP, and 2003.
Not all supported platforms are equally suitable for running MySQL. Determine the degree to which a platform is suitable for MySQL servers with high-load key tasks based on the following factors:
? The stability of the thread library. A platform may have a good response, but the stability of MySQL depends on the thread library it calls, regardless of whether the other part is complete.
? The kernel and thread library utilize the capabilities of balanced multi-processor (SMP) systems. In other words, when a process creates a thread, the thread should be allowed to run other processors than the CPU running by the original process.
? The kernel and thread library run in a short range to frequently obtain and release mutex without the ability of multiple threads that need to exchange too much content. If the CPU time generated when pthread_mutex_lock () is executed is too short, it will seriously affect MySQL. If you do not pay attention to this issue, increasing too much CPU actually reduces the MySQL speed.
? Stability and performance of conventional file systems.
? If the database table is large, the file system can process large files and improve the processing efficiency.
? Our experience in using MySQL AB on this platform. If we are familiar with a platform, we can optimize the platform and fix the compilation time. We can also provide recommendations on how to better configure the system for MySQL.
? The number of internal tests we have completed in a similar configuration.
? The number of users who successfully run MySQL in a similar configuration on the same platform. If this number is high, the chances of a specific platform problem are much lower.
According to the previous standards, the best platform for MySQL is x86, SuSE Linux is installed, and the 2.4 or 2.6 kernel is used, and ReiserFS (or similar to the Linux distribution version) and a Linux instance with Solaris (2.7-9) installed. FreeBSD ranks third, but we really hope that once the thread library is improved, it can also improve the ranking. From a certain point of view, we also hope to improve the ranking of platforms that are currently being compiled and allowed by other MySQL databases, but different levels of stability and performance can be required. This requires us to work with the operating system and library component developers on which MySQL depends. If you are interested in improving a component and may affect its development, please send an email to our MySQL internals for more instructions on how MySQL can run better.
Note that the comparison above does not mean that one operating system is better than the other. We just discuss how to select an OS to run MySQL. With this in mind, if you consider more factors, the comparison results may be different. In some cases, the reason why one OS is better than another is that we have made more efforts for testing and optimization for a specific platform. We just want to present our point of view to help you choose to run the MySQL platform.