set global optimizer_switch="engine_condition_pushdown=on"
Ouch! It is now pulling back the entire table 200 rows at a time.
Query: SELECT DISTINCT x FROM table
PRIMARY KEY (x,y,z)
Backend queries: SELECT x FROM table x > 12345 ORDER BY x,y,z LIMIT 200.
(And it is taking much longer than when ecp=OFF)
Question 1: Why fetch the table rather than executing the query?
Question 2: When you have a multi-part PK, that code is likely to be "wrong". Note that it always compared only x, not y and z. And it always said 200.