Я использую PostgreSQL 11
У меня около 3 миллионов строк в базе данных
время выполнения этого запроса составляет 2 секунды
EXPLAIN ANALYZE SELECT Student.ID AS id,
Student.name AS name, Student.age AS age,dept.name,college.name
FROM Student as Student
LEFT OUTER JOIN department dept
on dept.id=Student.dept_id
LEFT OUTER JOIN college college
on college.id=dept.college_id
WHERE Student.usertran_id = 'EM-001'
ORDER BY Student.datesendjc desc
LIMIT 10 OFFSET 0
результат:
"Limit (cost=332499.36..332500.52 rows=10 width=30) (actual time=1707.668..1713.719 rows=10 loops=1)"
" -> Gather Merge (cost=332499.36..332574.50 rows=644 width=30) (actual time=1707.663..1713.684 rows=10 loops=1)"
" Workers Planned: 2"
" Workers Launched: 2"
" -> Sort (cost=331499.33..331500.14 rows=322 width=30) (actual time=1677.797..1677.806 rows=6 loops=3)"
" Sort Key: student.datesendjc DESC"
" Sort Method: quicksort Memory: 25kB"
" Worker 0: Sort Method: quicksort Memory: 25kB"
" Worker 1: Sort Method: quicksort Memory: 25kB"
" -> Parallel Seq Scan on student (cost=0.00..331492.38 rows=322 width=30) (actual time=298.782..1677.567 rows=10 loops=3)"
" Filter: ((usertran_id)::text = 'EM-001'::text)"
" Rows Removed by Filter: 1494350"
"Planning Time: 3.414 ms"
"Execution Time: 1713.871 ms"
продолжительность выполнения без ORDER BY Student.datesendj c des c составляет 166,770 мс
Я пытаюсь также сделать ANALYZE Student
Я хочу, чтобы время выполнения было равно или почти равнялось запросу без ORDER BY Student.datesendj c des c