Пределы загрузки - это функция безопасности. Без них программа-изгои или злоумышленник могут доставлять ваш сервер непрерывным потоком данных до тех пор, пока ваш жесткий диск не будет заполнен, что сделает весь сервер непригодным.
С точки зрения безопасности это не особенно полезно для ограничьте данные исходящими и, насколько я знаю, ни библиотека Curl, ни PHP не накладывают никаких ограничений.
Ваши симптомы указывают на то, что проблема возникает на целевом сервере. Поскольку у вас есть доступ к нему (вы называете получение пустого $_POST
), я предлагаю вам проверить пределы загрузки. Это то, что вы можете делать (и часто меняться) самостоятельно, вам не нужно спрашивать администратора сервера. Основные задействованные директивы включают в себя:
Вы можете проверить их с помощью phpinfo()
или ini_get()
, и вы можете изменить их обычным способом .
Одно соединение, как правило, превосходит несколько одиночных выборов. Однако есть слишком много разных случаев, которые соответствуют вашему вопросу. Неразумно объединять их в одно простое правило.
Более важно, что следующему программисту будет легче понять и пересмотреть единственное соединение, при условии, что вы и следующий программист «говорите на одном языке» при использовании SQL. Я говорю о языке наборов кортежей.
И в равной степени важно то, что физическое проектирование базы данных и проектирование запросов должны быть в первую очередь сосредоточены на вопросах, которые приведут к улучшению скорости на десять, а не к увеличению скорости на 10%. Если бы вы делали тысячи простых выборов вместо одного соединения, вы могли бы получить десять за одно преимущество. Если вы делаете три или четыре простых выбора, вы не увидите большого улучшения, так или иначе.
Не пытайтесь записать свой собственный цикл соединения как набор выборов. Ваш сервер базы данных имеет много умных алгоритмов для того, чтобы сделать соединения. Далее, Ваш сервер базы данных может использовать статистику и ориентировочную стоимость доступа для динамичного выбора алгоритма соединения.
алгоритм соединения сервера базы данных - обычно - лучше, чем что-нибудь, что Вы могли бы придумать. Они знают больше о физическом вводе-выводе, кэшировании и этажерке.
Это позволяет Вам фокусироваться на своей проблемной области.
Существует только один способ знать: Время это.
В целом, я думаю, что единственное соединение позволяет базе данных сделать большую оптимизацию, поскольку это видит все таблицы, которые это должно просканировать, наверху уменьшается, и это может создать набор результатов локально.
Недавно, у меня было приблизительно 100 избранных операторов, которые я изменил в СОЕДИНЕНИЕ в моем коде. С несколькими индексами я смог пойти с 1 минуты приблизительно до 0,6 секунд.
Одна вещь рассмотреть помимо того, что было сказано, состоит в том, что выборы возвратят больше данных через сеть, чем соединения, вероятно, будут. Если сетевое соединение уже является узким местом, это могло бы сделать его намного хуже, особенно если это часто делается. Однако Ваш лучший выбор в любой ситуации с производительностью состоит в том, чтобы протестировать, протестировать, тест.
Все это зависит от того, как база данных оптимизирует соединения и использование индексов.
у меня был медленный и сложный запрос с большим количеством соединений. Тогда я подразделил его на 2 или 3 менее сложных запроса. Увеличение производительности было удивительно.
, Но в конце, "это зависит", необходимо знать whereВґs узкое место.
Если Вы используете SQL Server (я не уверен, доступно ли это с другим RDBMSs), я предложил бы, чтобы Вы связали план выполнения Вами результаты запроса. Это даст Вам способность видеть точно, как Ваш запрос (запросы) выполняется и что вызывает какие-либо узкие места.
, Пока Вы не знаете то, что на самом деле делает SQL Server, я не рисковал бы предположением, о котором запрос лучше.
Как был сказан прежде, нет никакого правильного ответа без контекста.
ответ на это зависит от (от вершины моей головы):
Если Ваша база данных имеет много данных.... и существует несколько соединений, тогда используйте индексацию для лучшей производительности.
, Если существуют слева/справа внешние объединения в этом случае, то используйте несколько выборов.
Все это зависит от Вашего размера дб, Вашего запроса, индексы (которые включают первичные и внешние ключи также)... Нельзя достигнуть на заключении с да/нет по Вашему вопросу.