Как я ищу через 15000 результатов, есть ли способ оптимизировать скорость обработки?Django оптимизировать код для большой фильтрации данных
На мой взгляд, я фильтрации поиска, как это:
if form.is_valid():
results = Screening.objects.filter(
screening_date__range(form.cleaned_data['start_date'],form.cleaned_data['end_date']))
if form.cleaned_data['company']:
results = results.filter(company=form.cleaned_data['company'])
if form.cleaned_data['company_job']:
results = results.filter(company_job__in=form.cleaned_data['company_job'])
if form.cleaned_data['company_job_type']:
results = results.filter(company_job_type=form.cleaned_data['company_job_type'])
if form.cleaned_data['reason']:
results = results.filter(reason_for_testing__in=form.cleaned_data['reason'])`
И ШАБЛОН, переданная результат используется как:
{% for result in results %}
<td>{{ result.company.name}}</td>
<td>{{ result.first_name }} {{ result.last_name }}</td>
<td>{{ result.company_job.job_number }}</td>
<td>{{ result.id }}</td>
<td>{{ result.screening_date|date}}</td></tr>
Есть ли способ оптимизировать обрабатывать или использовать кеш или sth в этом случае?
Что именно ваша проблема? Является ли результирующий запрос слишком медленным? У вас есть индексы правильно? –
База данных попадает только при оценке запроса, так что есть что-то, что я могу сделать для оптимизации моего кода. Я думаю, что есть проблемы с индексами. – Abhaya