Bu kullanıcının sıralama sorgu optimize nasıl

0 Cevap php

Ben sıralaması her 10 dakikada bir güncellenmektedir olması gereken bir sistem için 2 veritabanları (kullanıcılar, userRankings) var. Ben oldukça iyi çalışıyor bu sıralarda güncelleştirmek için aşağıdaki kodu kullanabilirsiniz, ancak birkaç yüz bin kullanıcılarla şeyler yavaşlatır yer alan tam tablo taraması hala var.

mysql_query("TRUNCATE TABLE userRankings");
mysql_query("INSERT INTO userRankings (userid) SELECT id FROM users ORDER BY score DESC");
mysql_query("UPDATE users a, userRankings b SET a.rank = b.rank WHERE a.id = b.userid");

UserRankings tabloda, rütbe birincil anahtar ve kimliği bir dizin olduğunu. Her iki tablo (bu userRankings InnoDB yapmak için faydalı olabilir diye merak ettik) MyISAM vardır.

0 Cevap