Maybe you can in the database to have a field that indicates activity of the user, if the user is inactive box switches to false and all entities associated with this account is not used, the user is notified about it, but always able to return your account, just go to the site and thereby changing the false to true, I think you can come up with many more ways to reduce the load using this field.
Or can these users be stored in a separate database, from which they then can be returned when you move a user to the database is inactive, it is also worth to notify.
\r
To remove in any case it is not, users, anything can happen, someone decided to live a year away from civilization, someone has a huge project at work and no time to visit the resource, thousands, and removal in any case will lower the loyalty, the bits anyway, but people do.