vipraskrutka пишет:Ну я конечно не прогер, но по моим наблюдениям - файлы и близко так не грузят сервак, как мускул, а если обращения к мускулу не сильно оптимизированы, то вешайся.
В общем когдато давно, когда только вышел ExBB FM 1.0 Beta, меня торкнуло затестить движки форумов , взял слабенький сервак с дефолтными настройками (но они были не такие жесткие, как на шаред хостингах), поставил все распространенные движки ExBB FM 1.0 Beta и на mysql - воблу, phpbb, smf , ipb . И проверял как при нагрузках (частых обращениях, доходящих до реального http флуда) они держатся. в итоге:
абсолютно все мускульные движки начинали дико тормозить, а потом и коннект к мускулу отвалилвался, а у ipb вообще база побилась, а ExBB FM 1.0 Beta работало стабильно (время генерации страницы малость увеличилась).
По сути хранение информации в БД организовано максимально эффективно, хотя конечно к полной эффективности прийти нельзя, ибо нельзя все возможные варианты подвести под общую черту. База данных, этот тот же набор файлов, только данные хранятся бинарно и упорядоченно, за счёт чего достигается высокая скорость поиска, выборки и т д. В то же время текстовые файлы с этой точки зрения неэффективны, мало того что данные записываются в произвольном порядке, так ещё и нужно тратить время на преобразование различных типов данных из текстового формата (чего не нужно делать в случае с бинарными файлами). Я сам являюсь соавтором fastSQL - упрощённого аналога MySQL, работающего значительно быстрее за счёт многочисленных оптимизаций. Это закрытая разработка, используется на некоторых серверах моих друзей, по этой разработке была защищена (не мной, конечно) диссертация на тему эффективной организации хранения и обработки данных. Поскольку принимал не последнее участие в этой работе, изучил многие стороны вопроса.
У нас же проблема не в файлах или СУБД, а в интерпретаторе PHP. Любой интерпретатор высокоуровневого языка программирования (которым является PHP) - это потенциальные проблемы со скоростью. А они в свою очередь усугубляются тем, что PHP вообще не поддерживает как таковую работу с бинарными файлами на низком уровне (как это реализовано в Си, на котором и написано большинство СУБД и даже PHP). Поэтому для организации хранения данных в бинарном виде и используют СУБД. Когда-то было дело, брался за разработку ExBB на Си (с использованием для хранения бинарных файлов), так вот по скорости работы и по нагрузке на сервер этот движок не сравнится ни с каким другим движком на PHP, вопрос только в том, что не каждый хостер даст выполнять приложения Си на своём сервере, да и кроссплатформенность у такого приложения спорная.