Что лучше использовать mysql или файлы для хранения данных?

StackOverflow https://stackoverflow.com/questions/2002406

  •  18-09-2019
  •  | 
  •  

Вопрос

Мне интересно, что лучше - использовать mysql или использовать файлы для хранения данных?Что безопаснее, что быстрее?Я говорю о php и mysql.

Это было полезно?

Решение

Это полностью зависит от ваших требований и настроек.

Для небольших объемов данных, которые не требуют сложных запросов, файлы обрабатываются быстрее.Кэши сайта - это один из примеров.

Для больших наборов данных или наборов с большей структурой база данных позволит вам запрашивать ваши данные более продвинутыми способами.

С точки зрения безопасности файлы могут быть защищены (с использованием разрешений) и храниться за пределами корневого веб-каталога.Базы данных могут быть привязаны к определенным хостам и могут иметь пользователей с разными ролями / разрешениями.

Другие советы

Как уже было сказано, это зависит от данных, но также и от вашего текущего узкого места.
Если ваше приложение запущено на сервере, которому уже не хватает ресурсов ввода-вывода, вы в любом случае можете предпочесть хранилище сетевого типа.

Проблемы безопасности в большей степени связаны с настройкой и передовыми практиками, чем с используемой технологией.Если вы записываете файлы, вам нужно убедиться, что они не являются загружаемыми.Если вы используете базу данных, вам нужно позаботиться о внедрении SQL и так далее...

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

Вы также можете использовать кэшированный в памяти для хранения данных в памяти (идеально подходит, например, для кэша).NOSQL базы данных, такие как Редис это тоже вариант.

  • База данных (ie MySQL):
    плюсы:доступен для поиска, может обрабатывать сложные и структурированные данные, может размещаться на другом сервере, постоянный
    минусы:медленно
    типичное использование:хранение бизнес - данных
  • Файлы:
    плюсы:очень простая в настройке, довольно быстрая, устойчивая
    минусы:не подходит для обработки очень сложных данных, недоступных для поиска, будет потреблять ресурсы ввода-вывода хоста сервера, не это быстро
    типичное использование:файлы журналов, файлы кэша шаблонов
  • NOSQL (т.е. Redis):
    плюсы:быстрый, может быть настроен на удаленном хосте, постоянный
    минусы:нелегко поддается поиску, не подходит для сильно структурированных данных
    типичное использование:взломы производительности (поиск)
  • Память:
    плюсы:Самый быстрый!, может быть настроен на удаленном хосте минусы:то же, что NOSQL + не постоянный
    типичное использование:кэширование объектов

Зависит от данных.

Однако, если это действительно не тривиально, вы также можете использовать mysql.На самом деле очевидного недостатка нет.

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

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

Чтобы дать лучший ответ, нам нужно знать, какой тип данных вы храните и как вы хотите получить к ним доступ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top