TXT-файл или база данных?

Что я должен использовать в этом случае (Apache + PHP) ? База данных или только TXT-файл ? Мой приоритет №1 – скорость .

операции

  • Добавление новых элементов
  • Чтение предметов
  • Максимум. 1 000 записей

Спасибо.

База данных (MySQL)

+----------+-----+ | Name | Age | +----------+-----+ | Joshua | 32 | | Thomas | 21 | | James | 34 | | Daniel | 12 | +----------+-----+ 

TXT-файл

 Joshua 32 Thomas 21 James 34 Daniel 12 

Вы изучали другие DHT?

Проект Волдеморт

Memcached + MySQL

Обновление 1

Если на серверах нет memcached и Voldemort, вы можете использовать встроенные базы данных с ключом, такие как BDB

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

У базы данных есть и другие преимущества, такие как некоторые санитарии (без разрыва разделителей, строк новой строки и т. Д.) И меньшей опасности конфликтов доступа, когда несколько экземпляров пытаются читать из таблицы, – и отличаются от подхода, основанного на файлах, конфликты записи ограничены запись имеющий отношение только.

Предлагаемый текстовый файл по сути является базой данных. Написание операций самостоятельно, чтобы манипулировать им, – это просто изобретать колесо, поэтому просто используйте то, что уже существует. 1000 записей довольно мелкие, поэтому использовать что-то простое, как SQLite, будет хорошо.

Использование базы данных будет более эффективным. Вы сможете запрашивать и выполнять операции для выбора данных намного легче, чем если бы они находились в текстовом файле. Текстовый файл должен быть постоянно открыт, закрыт, а содержимое взорвано для достижения итерации данных или поиска строк – это будет медленным и больным для кода.

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

Просто сохраните его в памяти, если есть только 1000 записей.

Не более 1000 записей, содержащих только имена и возрастные столбцы, я сомневаюсь, что существует какая-либо существенная разница в скорости между вашими параметрами; вероятно, другие факторы, такие как загрузка сервера, будут доминировать над вашей скоростью.

Для простого и надежного доступа MySQL может быть немного проще, но с текстовым файлом вам не нужно настраивать сервер MySQL.

У меня возникает ощущение, что у нас недостаточно информации, чтобы дать вам образованный ответ.

Как говорили некоторые из них, есть альтернативы этой проблеме. Мощь базы данных может быть полезна (в конце концов, вы не хотите сами кодировать эти функции, когда можете что-то делать), но вы не хотите перегружать.

SQLite, возможно, стоит посмотреть, поскольку его можно рассматривать как файл (не беспокоиться о сервере), но дает вам возможность SQL-запросов.

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

Если скорость действительно важна, я могу предложить использовать var_export для создания файла .php, который может быть загружен с помощью PHP. До тех пор, пока количество чтений-на-запись достаточно высоко, и если APC будет установлен, файл PHP сможет использовать кеш opcode APC. Это будет быстрее, чем что-либо другое, потому что данные будут загружаться изначально как PHP вместо того, чтобы проходить промежуточный уровень (memcache, mysql и т. Д.).

SQLite. Небольшая быстрая база данных. http://www.sqlite.org/

Интегрировано с установками PHP в эти дни. http://php.net/manual/en/book.sqlite.php

Дает вам варианты:

И если вы действительно хотите, чтобы скорость рассматривала nginx с fast-cgi php.

Я бы определенно рекомендовал базу данных по текстовым файлам в любой день. Во-первых, базы данных делают большую оптимизацию при доступе к данным, поэтому вам не придется беспокоиться о производительности. Во-вторых, у вас есть еще много возможностей. Вы можете использовать язык SQL для выполнения таких действий, как:

  • Выберите всех клиентов, возраст которых больше или равен 18
  • Получите количество продуктов, которые вы продали
  • Получите общий доход от проданных вами продуктов
  • Получите среднюю цену за все ваши продукты
  • Получите список клиентов, которые живут в определенной области

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

Это очень рискованно, но вы можете динамически генерировать PHP-файл. Если вы будете в основном читать из этого файла, это будет самый быстрый метод для небольших записей с лимитом 1000.