My experience is I can choose between "on-bike" and "thorough". On my mileage spreadsheet, I have a system where every 500 miles it flags a bike as due for a drivetrain cleaning, and when I used liquid lubes I'd pop the chain, scrub it thoroughly in cleaner, rinse & dry, lube & reinstall, and repeat for the freewheel/cassette, chainrings, derailleurs, and pulleys. When I'd do this, I'd get 3000+ miles from a chain, and near-indefinite service from freeewheels/cassettes or chainrings. As I've transitioned bikes to rust-resistant waxed chains, I've discovered all I've needed to do is re-dunk the chain every 500 miles - the other components are staying relatively clean. But that's another battle, er, discussion thread.