Что происходит быстрее: MySQL / PHP или прямо из статических файлов?

Я работаю над очень большой проектной системой викторины (экзамен). И у вас есть несколько вопросов. Прежде всего, это лучшее решение:

1) Получение всего содержимого страниц из базы данных MySQL и создание кэш-памяти php

или

2) Сохранение содержимого страницы в статических файлах?

Какое решение будет работать быстрее, чем другое?

Baseline-HTML

Baseline-html всегда быстрее PHP, потому что PHP необходимо вызвать .

The results follow (all are at 10 concurrent users, averaged over 5 one-minute runs): ab | rel | avg | ------------------------ | -------- | -------- | baseline-html | 1.2660 | 3581.54 | baseline-php | 1.0000 | 2829.11 | http_load | rel | avg | ------------------------ | -------- | -------- | baseline-html | 1.2718 | 4036.24 | baseline-php | 1.0000 | 3173.56 | siege | rel | avg | ------------------------ | -------- | -------- | baseline-html | 1.2139 | 5060.25 | baseline-php | 1.0000 | 4168.76 | 

Но, к счастью, PHP довольно быстро и почти не имеет никакого влияния на производительность при написании оптимизированного кода PHP. PHP – это динамический язык, поэтому меньше.

APC

Кроме того, если вы планируете работать на большом сайте, первое, что вы должны установить, это APC . На странице WIKI :

Большинство PHP-ускорителей работают путем кэширования скомпилированного байт-кода PHP-скриптов, чтобы избежать накладных расходов на разбор и компиляцию исходного кода по каждому запросу (некоторые или все из которых никогда не могут быть выполнены). Для дальнейшего повышения производительности кешированный код хранится в общей памяти и непосредственно выполняется оттуда, сводя к минимуму количество медленных чтений диска и копирование памяти во время выполнения.

База данных в памяти

Чтобы ускорить работу любого крупного сайта, вам действительно нужно использовать базу данных в памяти, такую ​​как Redis (мне это нравится) или Memcached . Все крупные сайты используют один из них. Например, Facebook, Twitter не мог работать без Memcached (Redis также работал, но они шли с Memcached). Это также действительно ускорит ваш сайт.

Предполагая, что кэширование не задействовано, обслуживание статических файлов всегда будет быстрее, чем обслуживание динамических страниц. Однако , независимо от того, какой тип сайта вы запускаете, вы всегда должны быть кешированием, которое должно быть через ваш веб-сервер, вашу инфраструктуру или с помощью такого инструмента, как Squid или Varnish .

В конце концов, вы должны принять решение, основанное не на том, насколько быстро будет сайт, а на том, какой выбор сделает для самой поддерживаемой системы в будущем.

Даже если статические страницы будут немного быстрее, чем загрузка каждой страницы из базы данных, с такими проектами вы должны учитывать множество других факторов. Возможно, вы хотите оптимизировать только производительность, но не хотите, чтобы вы объяснили своим пользователям, почему им нужно потратить 10 минут на создание новой викторины, потому что «база данных работает более эффективно».

На что вам нужно сосредоточиться – это использование. Если вы единственный, кто его поддержит, то, конечно, статические страницы могут быть не плохими. Но если вы собираетесь передать страницу нетехническим пользователям или если страницы будут нуждаться в частых изменениях, ну, вот почему были созданы динамические страницы с интерфейсом администрирования.

Если это приложение общего назначения, я бы «оптимизировал для пользователей», а не производительность. Конечно, последний может иметь небольшие хиты, но, в конце концов, не создавайте то, что вы не хотите поддерживать. Быстро изменяющиеся, многопользовательские приложения – используют административные серверы.

Это полностью зависит от вашего контекста. Если ваша скорость изменения данных больше, то рекомендуется динамический веб-сайт, загружающий страницы из базы данных. Но если вы хотите быстро его построить, то, очевидно, статичность предпочтительнее!