salut,

j'utilise PostgreSQL 11

J'ai environ 5 millions de lignes dans la base de données (dans le table étudiant et département et dans d'autres tables)
*
* le temps pour exécuter cette requête est de 4 secondes

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
select Student.name,Student.dateMovement,departmentName
 FROM Student as Student 
 LEFT OUTER JOIN department department 
 on department.id=Student.department_id
 LEFT OUTER JOIN college college on college.id= department.college_id
 
 order by Student.dateMovement desc 
 LIMIT 10 OFFSET 0
mais le temps sans cette ligne: order by Student.dateMovement desc est 430 ms
* J'essaie sans succès d'ajouter un index

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
  CREATE INDEX pk_Student_date
ON Student (id, dateMovement DESC);
J'essaye aussi avec


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
with CTE as (
   select Student.name,Student.dateMovement,departmentName
 FROM Student as Student 
 LEFT OUTER JOIN department department 
 on department.id=Student.department_id
 LEFT OUTER JOIN college college on college.id= department.college_id
    )
select *
from CTE
order by Student.dateMovement desc 
limit 50 offset 0;
mais aussi prendre 4 secondes