Свой NoSQL - хранение данных в файлах и не только в базе данных. Хранение настроек, небольших данных и файлов кеширования
Почти на любом сайте или в веб-приложении происходит обработка различных данных, такие данные могут быть иметь самые разные размеры. Общепринято хранить данные в базах данных (БД) и использовать язык SQL для выполнения различных операций над ними. Но можно прибегнуть к использованию других способов хранения, например, хранить данные в файлах.
Такой подход появился достаточно давно, даже можно сказать он использовался изначально, ведь чтобы сохранить какую-либо настройку программы или приложения достаточно было создать файл в той же папке и сохранить в нем значение. Позже стали появляться системы управления базами данных (СУБД) и реляционные базы данных, которые были призваны упорядочить работу с обработкой данных, сделать операции стандартизованными и безопасными. Однако недостатком стало замедление производительности и необходимость проектирования БД.
Постепенно стали появляться также базы данных нереляционного вида, где хранение данных реализовано не только в таблицах, но и в обычных файлах разных удобных форматов. Сегодня такого программного обеспечения (ПО) достаточно много, и оно негласно стало описываться концепцией под названием NoSQL (не только SQL). Кроме преимуществ, среди которых простота работы и скорость, у NoSQL подхода есть и недостатки. Например, необходимость контролировать работу с БД средствами своего кода, иначе возможны конфликты и потери данных.
Часто при разработке своего проекта может понадобится сохранить незначительные или временные данные, настройки и кеш. Не всегда в таком случае целесообразно использовать классическую БД с SQL или БД с NoSQL. Для этого может подойти другой подход – хранить данные в файлах, а некоторые данные в имеющейся БД в сериализованном или сжатом виде.
Хранение настроек
Простой пример, хранение настроек или базовой конфигурации CMS – для этого подойдет обычный файл с любым расширением. Средствами языка программирования (например, PHP), можно напрямую из кода создать директорию для такого файла и сам файл, после чего записать туда настройки и при необходимости открывать файл и считывать данные для последующего использования в коде.
Хранение временных или небольших данных
В случае если необходимо сохранить небольшие данные, также можно использовать хранение в файлах. Однако нужно предусмотреть, не потребуется ли дальнейшее усложнение структуры и увеличение объема таких данных. Если да, то в таком случае лучшим вариантом станет сохранение данных сразу в подготовленной таблице БД с возможностью дальнейшей модернизации структуры.
Хранение данных в БД в сериализованном виде
Небольшие фрагменты данных, включая временные данные, могут быть сохранены в БД в сериализованном виде. Например, в PHP для этого есть удобная функция serialize и обратная unserialize – после сериализации данные можно сохранить в БД и при необходимости выгружать их, выполнять десериализацию и использовать в коде.
Для хранения временных или небольших данных можно создать специальную таблицу в БД, которая будет состоять из трех столбцов:
– id (идентификатор);
– name (название данных);
– data (сериализованные данные).
Для удобной работы можно написать API для работы с этой таблицей. Он может содержать базовые операции:
– set (сериализация, после чего добавление или обновление);
– get (получение и десериализация);
– delete (удаление).
Удобство заключается в том, что не нужно специально создавать новые таблицы для несущественных данных.
Хранение файлов с кешем
Файлы кеширования могут быть также полезны – они могут содержать сложные в вычислении данные, иначе серверу потребовалось бы каждый раз выполнять лишние операции без необходимости. Такие файлы могут создаваться в специальной директории системы и очищаться автоматически при сбросе всего кеша или одной секции (например, секции могут именоваться по названиям модулей системы).
Последние статьи
- 09.07.22ИТ / Разное Конвертация офисных файлов DOC, DOCX, DOCM, RTF в форматы DOCX, DOCM, DOC, RTF, PDF, HTML, XML, TXT без потерь и изменения разметки
- 07.07.22ИТ / Безопасность Как защитить исходный код PHP, JS, HTML, CSS - обфускация, минимизация, сжатие и шифрование
- 06.07.22ИТ / Безопасность Подключение не защищено, проблема с Lets Encrypt - как исправить истекший 30.09.2021 DST Root CA X3, удалить его вручную и установить ISRG Root X1. Пример на MS Windows 7
- 08.07.21ИТ / Разное Как бесплатно сделать перевод для сайта без API, перевод документов в Google Translate
- 06.07.21ИТ / Разное Как сделать кнопку подписки на сайте, базу подписчиков и автоматическую рассылку