на практике они запросто будут весьма близки к среднему
Во-первых не факт, а во-вторых если они весьма близки к среднему, то можно сделать строки фиксированной длины, тогда будет быстрее.
Ради интереса провел эксперимент, нагенерил файл 99 МБ, 70+ тысяч записей.
Вариант с индексом выбирает 10 000 случайных строк, за 0.17 сек, вариант в котором выбирается 10 КБ, делается explode, а потом выбирается случайная строка выполняется 0.33 сек.
-~{}~ 28.07.09 19:49:
С.
Случайные числа в компьютере на самом деле псевдослучайные
Они то псевдослучайные, но неравномерность в пределах 1-2 процента, в твоем случае вероятность напрямую зависит от длины строки, и разница может отличаться в разы.
Я когда-то давно по похожей схеме делал баннерку, т.е. грубо говоря есть 100 элементов с номером баннера, и количество элементов с одним номером соответствовало приоритету баннера в процентах
