Что быстрее? Один большой запрос или несколько более мелких?

Я работаю над приложением, которое потребует запроса через Ajax для кучи сообщений в случайном порядке. Что-то вроде этого:

$query = new WP_Query( array( 'posts_per_page' => 50, 'orderby' => 'rand' ); 

Из-за характера сайта люди могут потребовать больше сообщений (в общей сложности 250-300 должностей). Итак, если им нужно больше сообщений, мне придется снова запросить, за исключением последующих времен, мне придется отправить массив сообщений, которые я уже использовал, поэтому люди снова не получают одинаковые сообщения.

Было бы более эффективно сразу вводить все должности сразу? или приносить 50 должностей каждый раз, когда у людей заканчиваются должности?

Или существуют другие способы оптимизации поиска или базы данных, поэтому не нужно слишком много времени, чтобы сразу вводить все вопросы?

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

 $query = new WP_Query( array ( 'orderby' => 'rand', 'posts_per_page' => '50', 'cat' => '3', 'post_type' => 'quote' ) ); 

Solutions Collecting From Web of "Что быстрее? Один большой запрос или несколько более мелких?"

Это зависит от местных факторов и фактических моделей использования. Для более крупных запросов требуется больше памяти для хранения данных и, в зависимости от используемых вами плагинов, для ее обработки в ответ, поэтому вы больше рискуете исчерпать память. С более крупным ответом (т. Е. Большим HTML-страницей) требуется больше времени, чтобы перенести страницу в браузер, чтобы страница выглядела так, как будто она медленная загрузка для людей с низкой пропускной способностью.

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

Перспектива UX может быть самым важным фактором для решения этих проблем. Если эти сообщения являются статьями для чтения людьми, то даже 20 могут быть слишком большими, но если это электронная таблица, вам, вероятно, захочется загрузить все за один раз.

РЕДАКТИРОВАТЬ

Я пропустил самую важную часть вопроса, которая является случайностью. Конечно, случайность и пейджинг не играют хорошо вместе, хотя вы можете их заставить, но более простой способ добиться случайности – это запросить все сообщения и сохранить в массиве, рандомизировать массив и сохранить его как переходный период в течение одного часа.

 $posts = get_tranient('my posts'); if (!$posts) { $posts = get_posts(your args); shuffle($posts); set_transient('my posts',$post,HOUR_IN_SECONDS); } ... slice the part of $posts you are interested in and work on it ... 

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

Что касается обновленной части вопроса, я никогда не тестировал ее самостоятельно, но размер памяти не был линейно связан с размером текста в самой записи, и вам нужно было бы указать метаданные, связанные с этим сообщением, а затем не сохраняться кэш памяти, который может в основном удвоить использование памяти (должен быть способ предотвратить кеширование, но я не могу его найти сейчас).

Хотя может случиться так, что вы можете одновременно обслуживать все 300 цитат, в этом очень мало смысла, даже в том, чтобы больше обслуживать AJAX, так как люди просто не читают так много «в сторону» текста.