Как правильно загружать большой объем данных из БД в Django?
Профилируйте запросы к БД. Найдите узкое место. Устраните или копайте дальше.
Запросы к БД "напрямую" (без django) выполняются так же медленно? Если вы строите графики на фронте, и валится "вывод", то скорее всего узкое место в используемой библиотеке. Причем она по сути обертка для JS. Профилируйте работу javascript. Благо Chrome умеет это все в dev панели. Отлично показывает "затыки" в JS. Отделите ужа от ежа и ищите.
Для начала объявите для всех о каком объеме данных идет речь?
Если это 100 значений для построения графика и страница не догружается, то нужно смотреть что с сервером, может ответ долгий или на сервере к примеру каждое значение чтобы получить проходит миллион переборок в цикле и каждый проход обращается с запросом к БД.
Если это десятки, сотни тысяч значений, то нужно посмотреть через что вы пытаетесь их отобразить, если это JS библиотека малоизвестная, то возможно в ней проблема, может она тупит при построении, если это какой нибудь highcharts, то нужно смотреть опять же на стороне отдачи данных.
Если это более миллиона данных, то тут уже вопрос и к отдаче и к построению графика ибо такими данными уже ворочать не так просто. Если данные на столько большие, то посмотрите в сторону кеширования получаемых данных, или вообще полностью кеширования страницы.
Большой объем можно разбить на более мелкие, ограничив к примеру датами, или усреднение показателей, тогда вам не придется гонять тонны данных от сервера к браузеру. Так же передавайте только необходимые данные, к примеру если для графика вам нужна дата и показатель, то отдавайте на сервере в JSON именно эти данные, не нужно к каждому показателю прилагать другие данные (заголовок, описание, дата создания, дата обновления, дата модерирования, всевозможные данные флагов и т.д.). Так вы можете сэкономить трафик, а это все время.
Как ранее писали, профилируйте. Смотрите кто тратит время, и от этого отталкивайтесь.