Так прога-то не только вытаскивает строчку, она еще и потом работает с ней, прога очень сложная, зачем вас этим грузить. Но с винтом при этом она точно не работает, а все делает в оперативке.Автор оригинала: *****
Видишь ли какое дело.
Если я сейчас все брошу и напишу тест, то у меня выборка 500 строк по твоему алгоритму займет в сто раз меньше времени.
То есть, проблема, выходит, не в том, что ты озвучил, а в том, о чем умолчал.
Вы не правы, реальную задачу я написал, вы вроде бы ответили, что без БД никак не обойтись, сейчас буду думать о возможности подключения БД.Автор оригинала: *****
Получается, мы две страницы разговаривали ни о чем. Потому что кто-то лукавил, проявлял заботу, и в целом писал о чем угодно, только не о реальной задаче.
Обломись. База данных - не волшебник с изумрудного города. И если тебе надо получать по 200 байт из двух гигов в разброску, то база тебе их не родит на блюдечке за пол-секунды., сейчас буду думать о возможности подключения БД.
читаем:реальную задачу я написал
нужно за раз вытащить 200-500 строчек
за раз нужно выдать несколько тысяч строк
А в остальном, прекрасная маркиза, все описал, все описал.иногда и весь этот миллион
Мой сервер находится на theplanet.comп.с. раз у теб центос 4, то сделай yum install mysql-server и он тебе на выбор предложит ставить 4-ю или 5-ю ветки, обе доступны в репозитарии.
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
[update]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=2
protect=1
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=2
protect=1
как еще это можно назвать, если не сортировкой?Надо было сразу усложнить задачу и сказать, что есть файл с миллионом строк, нужно в разной последовательности вытащить каждую из этих строк. Чтобы вас не запутывать например случайным образом весь миллион.
именно "разная последовательность" и задает порядок сортировки. критерием сортировки ведь не обязательно лексикографический порядок значений может быть, еще и произвольный внешний ключ, который задает порядок.разную последовательность сложно назвать сортировкой

Сделай нормальный индексный файл, типизированный, а не массивы (конечно тормоза будут, если 28 метров в массив загонять постоянно), где будут храниться смещения каждой строки в виде 4 байт, тогда ты сможешь почти мгновенно выбирать данные.Нет, индексный я в массив запихиваю и все
fseek($fi, rand(0, $elems - 1) * 4); // Смещение к случайному элементу
$tmp = unpack("Nint", fread($fi, 4)); // Читаем смещение строки для случайного элемента
fseek($fm, $tmp['int']); // Смещение к искомой строке
$str = fgets($fm); // Читаем строку