I found out what was causing the trouble - I have a table in the database which records the successful login dates and times by each users. This table currently has over 27,000 entries and I had queried it as follows:
SELECT max(Login) as Login FROM users LEFT JOIN `LoginRecord` on users.user_email = LoginRecord.UserID
This is what was slowing everything down. I've taken that facility off the results page and was going to build it into the user detail page instead, however I can't actually select the table from the list of tables in the Recordset builder - it doesn't appear in the dropdown. Could this be because of its size?