Is it possible to avoid filesort?
The docs say


  In some cases, MySQL cannot use indexes to resolve the ORDER BY,
  although it still uses indexes to find the rows that match the WHERE
  clause. These cases include the following:


and then go on to list many circumstances that prevent MySQL from using indexes. Among them are


  
  You use ORDER BY on different keys
  The key used to fetch the rows is not the same as the one used in the ORDER BY
  


and there are probably others.

To avoid a filesort, you have to find a way to get what you want without running into any of those (many) documented conditions.

You can also


  
  Increase the size of the sort_buffer_size variable.
  Increase the size of the read_rnd_buffer_size variable.
  Use less RAM per row by declaring columns only as large as they need to be to hold the values stored in them. 
  Change tmpdir to point to a dedicated file system with large amounts of free space. 
  


(Same link.)

Also see docs for Optimizing LIMIT Queries, which interacts with ORDER BY.