Hallo,
Indices sollten auf jeden Fall helfen können.
Allerdings sollen Indices mit Spalten, in denen NULL vorkommen darf, unter Umständen nicht viel bringen.
Schreib mal "explain" [0] vor "select" (also "explain select ..."), am besten in einem SQL-Tool (z.B. phpmyadmin) deiner Wahl. Das dürfte dir helfen.
Schau dir mal die Performance mit einem Benchmark-Skript an. Ich bezweifle, dass es schneller ist, drei Abfragen zu starten, als einmal RAND() zu benutzen. Bei PEAR [1] gibts einen Benchmark [2], oder du kannst auch einfach die php-Funktion microtime [3] ansehen.
Übrigens würde ich deinen Code etwas anders schreiben.
Nimm mysql_num_rows raus, das schont Resourcen. Wenn du ohnehin weißt, dass du nur 2 Antworten hast, ist es schneller, wenn du einen Zähler in php mitlaufen lässt.
Eine andere Möglichkeit ist, statt "mysql_fetch_object" "mysql_fetch_row" zu verwenden. Das sollte auch schneller sein.
Grüße
Erik
[0] http://dev.mysql.com/doc/refman/5.1/de/explain.html
[1] pear.php.net
[2] http://pear.php.net/package/Benchmark
[3] http://de2.php.net/microtime