I'm not surprised. I've seen bulk MySQL reads in Python be CPU-bound. The interesting followup was that parallelizing reads in subprocesses wasn't going to help much because I'd get killed by CPU again when serializing/deserializing between processes. I was capped at a ~2x speedup.