I tried this on postgresl with a randomly created 30000 row database of two text fields, two int fields, and one serial field (autoincrementing unique int).
select * from test_table limit 20;
response time, ~0.1 seconds.
select * from test_table order by test limit 20;
resonse time: ~2.0 seconds
select * from test_table order by test;
response time: ~5.0 seconds
then I ran vacuum analyze, all other times were the same, but
select * from test_table order by test;
ran in about 2.5 seconds, or nearly the same as the one with the limit.
the point is that this depends highly on which database you are running and which speed tricks you know and or have applied to it.