Following a previous question (Select polygons with other polygons layer?), I select some polygons using the query in the answer to create a virtual layer:
SELECT greens.* FROM greens, purples WHERE st_area(st_intersection(greens.geometry, purples.geometry)) > 0.5 * st_area(greens.geometry)
It works really well, but my layers contain 1.800.000 (and sometimes more) polygons. So that QGIS freezes and virtual layers only appears few days later. When I am trying to record it, it takes again several days to do that. Since I have to do the operation on several layers, it takes an incredible amount of time (that I do not have). Does someone know an alternative to use that kind of query in an other way to select the right polygons?