@jslby

Как лучше организовать файловую БД?

Здравствуйте!
Сразу хотелось бы отметить, что mySQL, SQLite и пр. решения не подойдут. Разрабатывается скрипт для дешевых, а то и фришных хостингов. В данный момент база организована одним файлом xml, который парсится при каждом запросе пользователя. Файл в среднем будет весить 2МБ.
Просьба сразу воздержаться тех, кто против файловых БД, те кто будет советовать использовать mySQL со слюной у рта перечисляя её плюсы. Я знаю все её плюсы, и с радостью бы использовал, а даже лучше Mongo, но стоит задача именно файловая.

Возможно есть какие-то уже готовые решения, потому что мой вариант, с одним файлом, я считаю слишком ресурсоемким. Есть идея создавать под каждую запись отдельный файл, и в скрипте подключать и парсить именно его, либо выгрузить файл xml в память и использовать его в фоне.
Кто что посоветует?
  • Вопрос задан
  • 2551 просмотр
Решения вопроса 1
@jslby Автор вопроса
Нашел более менее внятное решение: https://github.com/wylst/fllat
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
socengel
@socengel
7 лет native php в продакшене, онлайн 20000+,
В вашем случае, нужен очень грамотный специалист который знает все недостатки такой организации информации.
В частности блокировка файлов, ожидание разблокировки файла, в общем организация одновременного доступа. Если вы просто будете делать инслюд а потом что-то типа "file_put_contents()" вас могут ожидать неприятные последствия. по сути вам нужно будет написать sqlite только языком PHP.
Ответ написан
@Arik
Сделайте быстрый вариант и запуск, а то так долго играться будете. У вас один XML-файл размером в 2Мб? ну это не прям такая беда. Один файл лучше чем много мелких, если конечно диск не SSD, а на таких дешевых хостингах это будет редкостью. Возможно вам просто надо подумать в сторону кэша? Сделайте просто вариант, когда парсит с XML, потом готовый ответ ложите в кэш на какое-то время или сбрасываете по скрипту, когда данные обновляете.
Ответ написан
@frees2
В общем, вон товарищЪ сообщил выше, текстовые файлы не хуже а то и лучше баз данных.

Удивляюсь, почему хабрахабр не транслирует json как гугл.
Данные можно и легче хранить в json, но файл обрабатывать (искать по нему) исходя из "лёгкого" запроса.

К примеру пользователь входит на сайт и получает свою долю информации, не больше и не меньше а не весь файл.
Непонятно написал, но так работает гугла V3 апи, там можно посмотреть.
Ответ написан
Kvarkas
@Kvarkas
IT (full stack)
А как насчет такого решения как Firebase? судя по скупому описанию ваших потребностей (если не храните какой супер дупер секретной информации) должно подойти с лихвой

THE HACKER PLAN - FREE PLAN
50 Max Connections, 5 GB Data Transfer, 100 MB Data Storage.
1 GB Hosting Storage and 100 GB Hosting Transfer.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы