Если уж очень интересно, то попытаюсь ответить...
(Хотя сейчас, после переноса топика в другую ветку - опять разговор не по теме получится.)
На счет уверенности - скорее уверен в том, что ни в чем не уверен.
Но осмелюсь заметить, что в заданном вопросе не уточнялась какая база используется. (Решили, что MySQL - типа "по умолчанию"). А вдруг у других БД в документации по иному прописано.
Быстрее? Можно проверить на опыте, в данном конкретном случае (это дело задавшего вопрос).
И еще хочу объяснить, то почему ответил в этом топике.
Мне просто не понравился первоначальный Ваш ответ.
Почему?
Все просто - приведенный Вами код делает не то, о чем спрашивали.
Построчно:
- запрос на количество записей в таблице;
- получение количества записей;
- случайное число N в интевале от "нуля" до "количество записей"
-... и наконец
получение N первых записей из таблицы (но не одной случайной)
При Вашем подходе к поставленному вопросу, нужно сделать выборку всех записей (при большой базе - получится большой массив), в посчитать количество элементов массива, случайным образом выбрать элемент массива, содержащий id-записи и по этому id получить запись из базы. Нумерация записей может быть не скозной, а с пробелами (к примеру записи id=999 может не быть в базе, а N=999).
И что так быстрее будет (если база большая)?
И, кстати, вместо функции rand() лучше бы воспользоваться mt_rand()....
Но от темы уже ушли.
Может закрыть эту тему? а?