key_len says how much of the index was used

EXPLAIN naming an index does not mean all of it was used, and the column that says how much is the one nobody reads.

CREATE INDEX idx ON orders (status, customer_id, placed_at);

EXPLAIN SELECT * FROM orders
WHERE status = 'paid' AND placed_at > '2020-01-01';
-- key: idx    key_len: 62      ← one column

EXPLAIN SELECT * FROM orders
WHERE status = 'paid' AND customer_id = 12;
-- key: idx    key_len: 70      ← two

The number is bytes, so working out which columns it covers means adding up their storage sizes — tedious, and it settles the argument about whether an index is actually helping. A range condition stops the index being usable for anything after it, which is why the first query only uses the leading column despite naming two. Ordering a composite index with equalities first and the range last is what follows from that.