Bitmap heap scan
Le nœud de plan PostgreSQL employé quand un index correspond à trop de lignes pour un simple parcours d'index, mais à trop peu pour justifier de lire toute la table.
Le défaut d'un parcours d'index direct sur dix mille correspondances, c'est que les lignes sont récupérées dans l'ordre de l'index, donc que le disque saute d'avant en arrière dans la table. La solution : parcourir d'abord l'index et construire en mémoire une bitmap des pages qui contiennent des correspondances, la trier dans l'ordre physique, puis lire ces pages séquentiellement. On peut en outre combiner deux index par AND ou OR avant même de toucher à la table. Si work_mem ne suffit pas pour une bitmap exacte, elle se dégrade en marquant des pages plutôt que des lignes, et Recheck Cond apparaît alors dans le plan — la condition doit être réévaluée pour chaque ligne de ces pages.