@bitande
PHP

Насколько быстры cms на файлах при большом количестве файлов?

Хочу сделать простую cms на json файлах. Каждый json файл это как бы отдельная запись в бд.

Насколько быстро php работает с файлами? Допустим у меня будет 10 000 или 100 000 файлов, и при выводе одной записи мне нужно будет найти один файл среди этих ста тысяч.

Насколько медленно / быстро это будет по сравнению с mysql?
  • Вопрос задан
  • 304 просмотра
Пригласить эксперта
Ответы на вопрос 3
Sanes
@Sanes
При таком кол-ве файлов это будет глупо.
Ответ написан
SerafimArts
@SerafimArts
Senior Notepad Reader
1) Не забудьте, что все эти 10к файлов НЕ должны лежать в одной и той же директории, т.к. это сказывается на производительности а при превышении N лимита (влом гуглить циферку) всё наеб... поломается, короче. Я бы брал crc32 (самый быстрый алгоритм хеширования) от идентификатора, например "h87dg283" и складывал соответственно в "~/articles/h8/7d/g283.json".
2) При подобном хранилище поиск может быть осуществлён лишь по идентификатору записи. Т.е. что-то вроде "select * from articles where id = ?". Любые дальнейшие улучшения требуют больших накладных ресурсов. А реализация чего-то вроде поиска по записям будет физически невозможна (возможно, кончено, но писать такую шнягу придётся очень долго, а что-то вроде Sphinx к такому не прикрутить).

В остальном не вижу никаких особых проблем.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Всё зависит от реализации структуры хранения и алгоритма поиска в этом хранилище.
Если всё сделать грамотно - это будет однозначно быстрее, чем mysql.
Но, это только разговор про чтение!
Пруф: Dokuwiki - работает без БД, на файловом хранилище.

Если Вам нужна модификация/выборка данных - лучше, всё-таки, использовать БД.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 22:33
25000 руб./за проект
23 апр. 2024, в 22:07
12000 руб./за проект