Здравствуйте!
Сразу хотелось бы отметить, что mySQL, SQLite и пр. решения не подойдут. Разрабатывается скрипт для дешевых, а то и фришных хостингов. В данный момент база организована одним файлом xml, который парсится при каждом запросе пользователя. Файл в среднем будет весить 2МБ.
Просьба сразу воздержаться тех, кто против файловых БД, те кто будет советовать использовать mySQL со слюной у рта перечисляя её плюсы. Я знаю все её плюсы, и с радостью бы использовал, а даже лучше Mongo, но стоит задача именно файловая.
Возможно есть какие-то уже готовые решения, потому что мой вариант, с одним файлом, я считаю слишком ресурсоемким. Есть идея создавать под каждую запись отдельный файл, и в скрипте подключать и парсить именно его, либо выгрузить файл xml в память и использовать его в фоне.
Кто что посоветует?
jslby: Не очень понятно, что такое "парсинг в БД", но если ваши пользователи будут ходить в БД только на чтение, то всё очень сильно упрощается. И об этом таки стоило упомянуть в вопросе/требованиях к БД, кроме того, что она должна быть файловая.
В вашем случае, нужен очень грамотный специалист который знает все недостатки такой организации информации.
В частности блокировка файлов, ожидание разблокировки файла, в общем организация одновременного доступа. Если вы просто будете делать инслюд а потом что-то типа "file_put_contents()" вас могут ожидать неприятные последствия. по сути вам нужно будет написать sqlite только языком PHP.
Сделайте быстрый вариант и запуск, а то так долго играться будете. У вас один XML-файл размером в 2Мб? ну это не прям такая беда. Один файл лучше чем много мелких, если конечно диск не SSD, а на таких дешевых хостингах это будет редкостью. Возможно вам просто надо подумать в сторону кэша? Сделайте просто вариант, когда парсит с XML, потом готовый ответ ложите в кэш на какое-то время или сбрасываете по скрипту, когда данные обновляете.
jslby: смотря какой один файл и сколько нескольких, самое узкое место на сервере это жесткий диск, особенно когда много соседей. Поэтому желательно минимизировать кол-во обращений к диску.
В общем, вон товарищЪ сообщил выше, текстовые файлы не хуже а то и лучше баз данных.
Удивляюсь, почему хабрахабр не транслирует json как гугл.
Данные можно и легче хранить в json, но файл обрабатывать (искать по нему) исходя из "лёгкого" запроса.
К примеру пользователь входит на сайт и получает свою долю информации, не больше и не меньше а не весь файл.
Непонятно написал, но так работает гугла V3 апи, там можно посмотреть.
А как насчет такого решения как 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.
Nc_Soft: к тому же они дают хостинг свой, 1Гб но для мелких аппов более чем достаточно, можно завести несколько аккаунтов для суппорта нескольких аппов...