Что я должен использовать в этом случае (Apache + PHP)? База данных или просто файл TXT? Мой приоритет № 1 является скоростью.
Операции
Спасибо.
+----------+-----+
| Name | Age |
+----------+-----+
| Joshua | 32 |
| Thomas | 21 |
| James | 34 |
| Daniel | 12 |
+----------+-----+
Joshua 32
Thomas 21
James 34
Daniel 12
Вы изучали другие DHT?
Обновление 1
Если у вас нет memcached и Voldemort на ваших серверах, вы можете использовать встроенный ключ-значение такие базы данных, как BDB
Как некоторые говорили выше, у этой проблемы есть альтернативы. Мощь базы данных может быть полезной (в конце концов, вы не хотите самостоятельно кодировать эти функции, когда можете делать что-то еще), но вы не хотите переусердствовать.
SQLite, возможно, заслуживает внимания, поскольку его можно рассматривать как файл (не о сервере, о котором следует беспокоиться), но он дает вам возможность выполнять запросы SQL.
Вы также можете попробовать что-то вроде Memcached в качестве кеша поверх любого выбранного вами уровня хранения данных.
SQLite. Небольшая быстрая база данных. http://www.sqlite.org/
Интегрирован с установками PHP в наши дни. http://php.net/manual/en/book.sqlite.php
Предоставляет вам варианты:
И если вам действительно нужна скорость, рассмотрите nginx с fast-cgi php.
С максимумом 1000 записей, содержащих только столбцы имени и возраста, я сомневаюсь, что есть какая-либо значительная разница в скорости между вашими вариантами; вероятно, другие факторы, такие как нагрузка на сервер, будут определять вашу скорость.
Для легкого и надежного доступа MySQL может быть немного проще, но с текстовым файлом вам не нужно настраивать сервер MySQL.
У меня такое чувство, что у нас недостаточно информации, чтобы дать вам обоснованный ответ.
Для скорости и оптимизации использования памяти я бы выбрал базу данных. Один только индекс на столбце имени, вероятно, увеличит производительность так, как никогда не удастся достичь с текстовым файлом.
База данных имеет и другие преимущества, такие как некоторая санация (отсутствие разделителей, новых строк и т.д.) и меньшая опасность конфликтов доступа, когда несколько экземпляров пытаются читать из таблицы - и в отличие от подхода, основанного на файлах, конфликты записи ограничены только данной записью.
Если скорость действительно единственное, что важно, я мог бы предложить использовать var_export
для создания файла .php, который может быть загружен с помощью PHP. Пока число операций чтения и записи достаточно велико, и если установлен APC , файл PHP сможет использовать кэш опкодов APC. Это будет намного быстрее, чем НИЧЕГО, потому что данные будут загружены изначально как PHP, вместо того, чтобы проходить через промежуточный уровень (memcache, mysql и т. Д.).
Я определенно рекомендую базу данных вместо обычных текстовых файлов в любой день. Во-первых, базы данных значительно оптимизируют ваш доступ к данным, поэтому вам не придется так сильно беспокоиться о производительности. Во-вторых, у вас гораздо больше возможностей. Вы можете использовать язык SQL для следующих действий:
... и многое, многое другое, с помощью простых операторов SQL. Попытка кодировать все это для текстового файла была бы контрпродуктивной и менее гибкой. С базой данных вы получаете все это бесплатно.
Это очень рискованно, но вы можете динамически генерировать PHP-файл. Если вы будете в основном читать из этого файла, то это будет самый быстрый метод для небольших записей с ограничением в 1000.
Предлагаемый текстовый файл по сути является базой данных. Самостоятельное написание операций для управления им - это просто изобретение велосипеда, поэтому просто используйте то, что уже существует. 1000 записей - это довольно маленький масштаб, поэтому можно использовать что-то простое, например SQLite.
Использование базы данных будет более эффективным. Вы сможете делать запросы и операции по выбору данных гораздо проще, чем если бы они находились в текстовом файле. Текстовый файл придется постоянно открывать, закрывать и разворачивать его содержимое, чтобы добиться итерации данных или поиска строк - это будет медленно и хлопотно.
Существуют классы и готовые скрипты, которые позволяют хранить такие данные в текстовых файлах, но в конечном итоге именно для этого и были созданы базы данных, поэтому я бы использовал одну из них.
Просто сохраните его в памяти, если есть только 1000 записей.