Поэтому я буду работать над домашней блога в PHP, и мне было интересно, какой способ хранения данных является самым быстрым. Я мог бы пойти в направлении MySQL, или я мог бы пойти с моим собственным небольшим способом сделать это, который хранит всю информацию (закодированную в JSON) в файлах.
Каким будет самый быстрый, MySQL или JSON-файлы?
Я бы выбрал базу данных MySQL – просто потому, что ее легче управлять.
JSON на самом деле не является форматом для хранения, он предназначен для отправки данных в JavaScripts. Если вы хотите хранить данные в файлах, посмотрите на XML или Serialized PHP (который, как я подозреваю, вы используете, а не JSON).
Для небольшой однопользовательской «базы данных» файловая система, скорее всего, будет быстрее – по мере роста размера и сложности сервер базы данных, такой как MySQL или SQL Server, трудно превзойти.
Я бы выбрал вариант DB (как вам нужно, чтобы искать и индексировать материал). Но это не значит, что вам нужна полностью реализованная отдельная служба БД.
MySQL определенно является более масштабируемым решением.
Но недостатком является то, что вам нужно настроить и поддерживать отдельный сервис.
С другой стороны, есть DB, которые основаны на файлах и по-прежнему дают вам доступ со стандартным SQL (SQLite SQLite.org). Вы получаете преимущества SQL, но вам не нужно поддерживать отдельную услугу. Недостатком является то, что они не настолько масштабируемы.
Простите меня, если это не ответит на ваш вопрос очень напрямую, но поскольку это система с исправленным блоком, действительно ли стоит тратить время на размышления о том, какая база данных памяти сейчас быстрее?
Вы не будете смотреть на 10 000 одновременных пользователей с 1-го дня, похоже, что в обозримом будущем это будет необходимо масштабировать до любой маневренной степени.
Почему бы просто не придерживаться MySQL как разумного выбора, а не быстрого? Если вам действительно нужно какое-то ощущение, что вы разработали для скорости, возможно, вместо этого запустите sqlite.
Поскольку вы думаете, что у вас может не возникнуть необходимость в сложной реляционной структуре, это может быть интересной возможностью попробовать что-то большее по середине.
Проверьте CouchDB , это бесплатная база данных, основанная на документах (все еще индексируемая). База данных состоит из документов, содержащих именованные поля (считайте пары «ключ-значение»).
Повеселись….
Хотя я точно не знаю, мне кажется, что база данных MySQL будет намного быстрее, тем более что объем данных становится все больше и больше.
Кроме того, использование MySQL с PHP очень просто, особенно если вы используете класс абстракции, такой как ezSQL . ezSQL делает работу с базой данных очень простой, и я думаю, что вы создадите больше ненужной работы для себя, перейдя на начатое JSON направление.
Я сделал то и другое. Мне нравятся файлы для очень простых задач и баз данных для сложных задач.
Для решения файлов обратите внимание на эти проблемы по мере увеличения количества файлов:
1) Значительно больше дискового пространства используется, чем вы могли ожидать, потому что даже крошечные файлы используют целый блок. Блоки довольно велики в файловых системах, которые поддерживают большие диски.
2) Большинство файловых систем становятся очень медленными, когда количество файлов в каталоге становится очень большим. Мое решение этого вопроса (при условии, что имена файлов достаточно распространены по алфавиту) состоит в том, чтобы создать каталог, состоящий из первых двух букв имени файла. Таким образом, файл «animal.txt» будет найден в файле / animal.txt. Это работает на удивление хорошо. Если ваши имена файлов не являются разумно распределенными по алфавиту, используйте некоторую функцию хеширования для создания каталогов. Звучит немного сумасшедшим, но это может работать очень, очень хорошо, и я использовал его для очень быстрых решений с десятками тысяч файлов.
Но файловые решения действительно подходят только иногда. Если у вас нет большой причины пойти с файлами, используйте базу данных.
Это действительно здорово. Это класс PHP, который управляет плоской базой данных с запросами http://www.fsql.org/index.php
Для блогов я рекомендую кэшировать страницы, потому что блоги обычно имеют только статический контент. Таким образом, запросы запускаются только один раз при кэшировании. Вы можете обновлять кешированные страницы при добавлении нового сообщения в блоге.