Генерация ранга 500000 или более записей в nodejs - PullRequest
0 голосов
/ 13 мая 2019

Я страдаю от проблемы за последние 5 дней и еще не решил, как это сделать правильно.

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

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

В настоящее время я использую MySQL v5.7 инет функции для генерации ранга, я также планирую изменить базу данных.

Так что любой может предложить мне хороший способ выполнить эту задачу.

Я работаю над этим с нескольких последних дней и до сих пор не нашел хорошего решения

Если кто-нибудь может предложить хорошее решение, я буду очень благодарен.

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

Ранжирование вручную означает, что сначала я читаю все записи, а затем повторяюсь по циклу, затем проверяю счет пользователя и обновляю его рейтинг

1 Ответ

0 голосов
/ 13 мая 2019

извините за просьбу дать разъяснения на странице ответов (недостаточно репутации, чтобы комментировать) ..

Прежде всего вы не можете запросить все 100000 записей и зациклить их одновременно, вы можете получить ошибку исчерпания памяти.

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

оформление заказа

http://www.mysqltutorial.org/mysql-window-functions/mysql-rank-function/

INSERT INTO t(val)
VALUES(1),(2),(2),(3),(4),(4),(5);

SELECT
val,
RANK() OVER (
ORDER BY val
) my_rank
FROM
t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...