In WordPress, when a query does not need paging and you only want a limited amount of results, like the last 5 posts, set the ‘no_found_rows’ parameter to true. This prevents WordPress from doing additional work in counting the total matched rows, thus speeding up your query.
This is already built into get_posts, but not WP_Query.
Example:
$last_5_query = WP_Query( array( ‘no_found_rows’=> true, ‘posts_per_page’=>5 ) );