Hola [DARK_RULO]
Primero que nada, el EXPLAIN de MySQL es siempre tu mejor ayuda a la hora de optimizar queries.
Dicho esto. Un SQL como:
Código HTML:
SELECT * FROM blogs ORDER BY rand() LIMIT 0,1
es un mata-mysql :)
Haciendo un explain sobre una base de datos mía con ese query... mira lo que da:
Código HTML:
+----+-------------+----------+------+---------------+------+---------+------+------+---------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+----------+------+---------------+------+---------+------+------+---------------------------------+
| 1 | SIMPLE | category | ALL | NULL | NULL | NULL | NULL | 124 | Using temporary; Using filesort |
+----+-------------+----------+------+---------------+------+---------+------+------+---------------------------------+
Si un query te dice "using filesort"... malo malo.
En vez de aleatorio hazlo rotativo. Así te puedes deshacer del rand.