Is there a way to optimise ORDER BY because with it in my query it takes way too long to execute
Is the column you are ordering by indexed?
and does your server have enough memory? Database servers love memory, and you should give it memory. lots of it.
And what's the query? And on how many rows? and how many tables? and how many keys? and whats the server load?