Выбор базы данных и сортировка по дате времени (панель управления Python в реальном времени)

У меня есть панель мониторинга для обновлений в реальном времени и последних уведомлений.

Представьте, что это система ведения блога, в которой вы можете подписаться на сообщения авторов и комментарии. Затем я хочу, чтобы в моей приборной панели появлялось 2 типа уведомлений, отсортированных по времени ввода:

  1. Последние сообщения
  2. Последние комментарии

Представьте себе, что я хочу, чтобы 10 обновлений отображались, когда я загружаю панель инструментов (позже обновляю я получаю через ajax). Как я должен запрашивать базу данных и как мне сортировать результаты?

Я подумал о том, чтобы запросить 2 таблицы (сообщения и комментарии) для данных, которые я подписал, добавить эти данные в список и отсортировать эти результаты для datetime, а затем вернуть последние 10, но я считаю, что это не очень хорошо потому что потребуется много времени для сортировки, если эти таблицы (и мои подписки) начнут расти.

Каковы ваши ответы / мысли по этой проблеме?

Запросите первое упорядочение таблицы, уменьшив время вставки и ограничив результаты до 10. Затем запросите вторую таблицу таким же образом. Затем объедините результаты в python и верните первые 10 из них.

Пример django может выглядеть так:

from operator import attrgetter recent_posts = Post.objects.order_by('-created')[:10] recent_comments = Comment.objects.order_by('-created')[:10] both_combined = list(recent_posts) + list(recent_comments) both_sorted = sorted(both_combined, key=attrgetter('created'), reverse=True) most_recent = both_sorted[:10]