Для небольшого PHP-приложения, которое я пишу, нам нужно сохранить большое количество записей, имеющих хэш-ключ, и несколько простых значений полей («хост», «путь»). например:
'4420ffb32a' => array( 'host' => '127.0.0.1', 'path' => 'path/to/resource', );
Каково наилучшее постоянное хранилище данных? Будет ли MySQL лучшим выбором, или это слишком сложно для таких простых данных? Что даст лучшую производительность?
Короткий ответ: Мембаза .
Длительный ответ:
У вас в основном есть три варианта: реляционная база данных, хранилище файлов или что-то еще.
Как вы сказали, реляционная база данных определенно может быть переполнена. Тем не менее, если это часть приложения, у которого уже есть MySQL или другая база данных, я бы пошел с этим. Кроме того, иногда бывает полезно хранить файлы (например, писать кучу XML-файлов), но дисковый ввод-вывод может быть медленным.
Теперь в другой категории у вас есть отличные опции NoSQL, такие как CouchDB или Memcached .
Если вы не слишком беспокоитесь о сохранности ваших данных, я бы рекомендовал memcache. Он легкий, легкий для работы, и есть расширение PHP Memcache, которое упрощает его использование. Это сделано для хранения ключевого значения, подобного этому.
Единственный недостающий memcache состоит в том, что все ваши данные потеряны во втором, когда служба memcache прекращается. Это – то, где Membase входит. Это – открытая версия memcache, которая совместима с протоколом, то есть она будет работать со всеми существующими клиентскими библиотеками. Тем не менее, он может сохранять ваши данные и на самом деле обеспечивать согласованность и надежность, что-то memcache не может само по себе.
CouchDB – это ваш ответ (хотя это может быть немного излишним для ваших нужд).
Просто предложить что-то другое, redis (или redisdb-win32, если вы на серверах Windows)
Не лучший ответ. Но я бы сохранил его в базе данных mysql_pconnect
и, возможно, использовал mysql_pconnect
если данные не будут извлекаться одновременно.
Информация о pconnect здесь: php.net
Общей альтернативой базе данных является простой файл, но исправьте меня, если я ошибаюсь, но совместимый доступ к файлам может быть медленнее.
Удачи.
Чтобы добавить еще некоторые из упомянутых выше, PHP имеет встроенную поддержку для
Для последнего есть хорошая статья Йоханнеса Шлютера .
Странный никто до сих пор не упоминал Флинтстоун .
Также хорошим вариантом является Doctrine .
я бы пошел на MySQl, на всякий случай вам нужно будет обновить свое приложение в будущем. Лучше быть будущим доказательством, когда дело касается приложений.