#php #sql
#php #sql
Вопрос:
Я работаю над футбольным матчем онлайн и пополняю статистику игроков, которую необходимо перезаписывать ежедневно после моделирования. (Вам не нужен образец базы данных для моего вопроса, только чтобы понять, какова структура моих данных (около 100 столбцов и 5 миллионов записей): идентификатор игрока, сыгранная игра, тачдауны, прогоны, …)
Учитывая, что данными нужно будет часто манипулировать (в основном SQL UPDATE и SELECT), должен ли я выбрать хранение своих данных в базе данных SQL и выполнение нескольких запросов или запись данных в файл на сервере с помощью функций записи PHP? Что больше всего снизит нагрузку на сервер?
Комментарии:
1. если у вас много данных, используйте базу данных sql
2. только php может быть быстрым, но доступ к файлам будет болезненно замедлять работу вашего приложения, особенно когда файлы становятся больше и несколько пользователей пытаются получить к ним доступ… SQL полностью
3. Пока что SQL будет соответствовать общему мнению.
Ответ №1:
Если вы хотите, чтобы ваш сайт был масштабируемым, используйте SQL. Настройка может быть сложнее, чем текстовые файлы, но вам не придется разбирать всю вашу инфраструктуру, если вы захотите добавить более продвинутые функции позже.
Комментарии:
1. Я понимаю, о чем вы говорите, но разве использование SQL вместо записи PHP-файлов замедляет работу сервера и использует больше процессора?
2. Это не простая проблема; есть компромиссы. SQL, вероятно, занимает больше циклов, чем открытие файла, но SQL оптимизирован для быстрого поиска и вставки. Кроме того, SQL автоматически управляет двумя пользователями, пытающимися одновременно выполнять запись в одну и ту же таблицу.
Ответ №2:
Я предложу вам использовать их оба, я уверен, что вы не всегда будете использовать всю информацию из базы данных mysql. Итак, в MySQL сохраняйте основную информацию для игроков, такую как id и имя, далее … если вы действительно хотите повозиться с текстовыми файлами, тогда создайте уникальные текстовые файлы для каждого отдельного игрока (сделайте это с помощью PHP, сначала проверьте, есть ли уже файл с таким именем, имя должно быть идентификатором игрока, если нет … тогда создайте 1) и в этих файлах храните информацию, которая часто обновляется. Я предлагаю вам протестировать оба способа: с Mysql TXTs и только MySQL. Приветствия
Ответ №3:
Вообще говоря, если у вас так много записей, база данных, вероятно, является правильным решением. Однако это зависит от вашего точного использования.
Если вы просто генерируете все результаты сразу, а затем не выполняете поиск по отдельным записям, возможно, текстового файла будет достаточно. Однако, если вы делаете что-то большее, чем это, то лучше использовать базу данных, поскольку это своего рода то, для чего они были предназначены.
Вы всегда могли бы реализовать обе ситуации и профиль, что было бы быстрее, поскольку это был бы прагматичный способ определить это в вашей среде и использовании.
Ответ №4:
Я предлагаю использовать SQL, он более гибкий и оптимизирован для этой цели, особенно для поиска, вставки, обновления. однако вы все еще можете использовать чтение / запись файлов в качестве системы кэширования. часто вам не нужно искать одну и ту же информацию при каждом посещении страницы. это когда вы можете кэшировать страницы или просто данные, и обновлять кэш только каждые xx секунд / минут / часа, в зависимости от вашего сайта.