Check the location of your tmp dir, by running df -h
. Make sure there's enough space to grow the temp file, it could be several gigs.
Edit: If you have enough free space, I'd check to make sure every column you're indexing on or including in the WHERE clause is indexed.