Se till att du talar om för PDO att värdet är ett heltal inte en sträng; om PDO sätter det som en sträng måste MySQL typcasta värdena för jämförelse. Beroende på hur det går till kan det orsaka stora nedgångar genom att göra att MySQL undviker att använda ett index.
Jag är inte helt säker på beteendet här, men jag har haft det här problemet med Postgres för några år sedan...