Hal penting yang perlu diingat ketika melakukan benchmark kinerja penyimpanan MySQL di Linux adalah cache. Saya sendiri penasaran dengan test case yang sama. Itu selalu lucu ketika pengguna mengeluh tentang permintaan yang lambat. Mereka menelepon Anda dan menjalankan lagi hanya untuk menemukan kueri 50+ menit mereka sekarang selesai dalam 30 detik karena cache kueri. Selalu jalankan
mysql> reset query cache;
di MySQL saat mencoba mengoptimalkan kueri. Meskipun demikian, ada satu langkah lagi saat membandingkan SSD dengan spindel tradisional:cache disk. Sulit untuk membandingkan waktu akses atau IOps ketika OS melakukan caching disk di memori sendiri. Untuk menghapus cache disk, jalankan perintah berikut dari shell:
$ sync && sysctl -w vm.drop_caches=3
Perintah ini dijalankan sebelum setiap kueri benchmark Anda akan membantu Anda menyadari potensi SSD Anda dibandingkan dengan slowpoke SATA 7k2 yang Anda miliki. Verifikasi ini dengan menjalankan kueri yang sama dua kali tanpa menghapus cache dan mengamati waktu kueri. Pada titik ini, merupakan ide bagus untuk mencoba beberapa kueri dengan dan tanpa indeks, serta beberapa gabungan jika memungkinkan. Gunakan RENCANA JELASKAN pada setiap kueri untuk memverifikasi bahwa indeks digunakan. Akses acak membaca antara indeks dan file data akan mengekspos kemacetan pada disk yang lebih lambat. Pastikan my.cnf Anda konsisten antara benchmark SSD dan platter Anda. Saya menguji beberapa hal pada desktop OCZ SSD sederhana dan melihat peningkatan kinerja kueri sekitar 10x secepat disk SATA 7200rpm saya. Dalam database transaksional berbasis SSD, saya akan berhati-hati saat menggunakan OPTIMIZE TABLE karena pemadatan database yang sering dikombinasikan dengan SSD TRIM dapat memengaruhi masa pakai disk. Itu teoretis, dan saya belum melihat bukti untuk mendukung ini.
Semoga ini membantu! Saya tidak sabar menunggu hari-hari ketika HD magnetik menggantikan pita sebagai media cadangan dan mendapati dirinya sepenuhnya digantikan oleh SSD di sebagian besar perangkat keras.