# How a range query works on a simple B+tree

Given a B+tree indexing scheme, wondering how a database actually goes and finds records matching a range query such as the following:

CREATE TABLE foo (
x int,
y int
)

SELECT * FROM foo
WHERE x > 10 AND x < 100
AND y > 20 AND y < 200

From my understanding this would require 2 b+trees, one for each property ($x$ and $y$). Wondering if one could describe how it would go about about querying the different indexes to satisfy this query. I am having difficulty understanding how the B+tree works in practice.