Большой запрос к пользовательской таблице - проблема с памятью - PullRequest
0 голосов
/ 26 июня 2018

Я создаю плагин, который создает коды, которые могут быть использованы пользователем. Мне нужно отобразить все сгенерированные коды в WP_LIST_TABLE. Я создал пользовательскую таблицу с именем "bo_codes", и она выглядит следующим образом.

Таблица: https://visual23.com/table.png

Мой запрос выглядит следующим образом.

$query = "
SELECT $wpdb->bo_vaping_codes.bo_code, $wpdb->bo_vaping_codes.assigned_product_name, $wpdb->bo_vaping_codes.status, $wpdb->bo_vaping_codes.run_number, $wpdb->bo_vaping_codes.author_name, $wpdb->bo_vaping_codes.date_created
FROM $wpdb->bo_vaping_codes
ORDER BY $wpdb->bo_vaping_codes.date_created DESC;
";
$data = $wpdb->get_results( $query, ARRAY_A );

Я сделал тест и сгенерировал 100 000 кодов, и я получаю эту ошибку. «Неустранимая ошибка: допустимый объем памяти 268435456 байтов исчерпан (попытка выделить 72 байта)»

Могу ли я что-нибудь сделать с базой данных или моим запросом, чтобы уменьшить используемую память? Я не уверен, что делаю что-то не так или просто раздвигаю границы.

1 Ответ

0 голосов
/ 26 июня 2018

Это проблема дизайна пользовательского интерфейса, а не проблема базы данных.

Разбивка на страницы нецелесообразна - вернемся к первому комментарию: Никто из пользователей не захочет просматривать список из 100 тыс. Элементов. Я добавлю: "независимо от того, разбиты на страницы или нет". Итак, переосмыслите пользовательский интерфейс; выбрать способ показать полезную информацию, не предлагая всего этого.

Возможно, сначала спросите, для какой "категории продукта" перечислить товары.

Может быть, сначала автором.

Возможно, к какому месяцу он был «создан» в.

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

Для 100K предметов, вероятно, разумно пройти два уровня комплектации, прежде чем попасть в фактический список. Это будет в основном сводить к минимуму до 100 вещей на выбор за один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...