Вы правы, что это неэффективно, но это не вина Apache.Обслуживание файлов с помощью PHP будет вашим узким местом.Вы должны изучить X-Sendfile, который позволяет вам сообщать Apache (через заголовок, вставленный PHP), какой файл отправлять (даже если он находится за пределами DocRoot).
Увеличение скорости будет более выраженным прибольшие файлы и большие нагрузки.Конечно, еще лучший способ увеличить скорость - использовать CDN, но для большинства из нас это излишне.
Использование X-Sendfile с Apache / PHP
http://www.jasny.net/articles/how-i-php-x-sendfile/
Что касается увеличения производительности при загрузке, у меня нет особых знаний.В целом, однако, я полагаю, что каждая загрузка файла «блокировала» одного из ваших работников Apache на долгое время, то есть Apache должен вызывать больше рабочих процессов для других запросов.При достаточном количестве рабочих сервер может заметно замедлиться.Вы можете взглянуть на Nginx, который является сервером, основанным на событиях, а не на процессах.Это может увеличить вашу пропускную способность, но я признаю, что никогда не экспериментировал с загрузками в Nginx.
Примечание: Nginx использует X-Accel-Redirect вместо X-Sendfile.
http://wiki.nginx.org/XSendfile