MySQL temp table için ssd-tmpfs farkı

Sorgumuz bu;

SELECT SQL_NO_CACHE DISTINCT a.*, u.user_email, u.user_nicename, u.user_login, u.display_name FROM wp_bp_activity a LEFT JOIN wp_users u ON a.user_id = u.ID WHERE a.is_spam = 0 AND a.hide_sitewide = 0 AND a.type != ‘activity_comment’ ORDER BY a.date_recorded DESC LIMIT 0, 50

Bir çok join işleminde olduğu gibi bu sorguda da MySQL temp table oluşturuyor ve my.cnf da ayarladığınız tmpdir’a bu temp table’ı atıyor.

Ben sunucularımda ssd disk kullanıyorum. Bu sorguyu incelerken “Copying to tmp table” işleminin uzun sürdüğünü görerek bir çözüm aradım ve tmpdir olarak tmpfs kullanmanın bu işi hızlandırabileceğini ve nasıl tmpfs’e geçileceğini şurada gördüm ve uyguladım. Ubuntu kullanıyorsanız şuradaki yazıyı da okumalısınız.

tmpfs; dosyaları disk yerine ramde tutuyor ve haliyle işleminiz daha hızlı oluyor. Şimdi sonuçları paylaşıyorum.

tmpfs’den önce

Sorguyu 3 defa art arda çalıştırdım…

Screen Shot 2014-05-05 at 13.38.46 Screen Shot 2014-05-05 at 13.39.21 Screen Shot 2014-05-05 at 13.39.29

Sonra

Yine 3 defa art arda çalıştırdım.

Screen Shot 2014-05-05 at 13.39.47 Screen Shot 2014-05-05 at 13.39.57 Screen Shot 2014-05-05 at 13.42.09

Sonraki sonuçlarda da yine ortalama 1.5sn civarı sürdü. Benim ssd kullandığım sunucumda fark 0.2sn kadar oldu.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir