Rather than completely deleting the user's account, or merely setting some "active/inactive" field to "inactive", you could maintain a table of active users, and a table of inactive users. Move records from the active table to the inactive table. Depending on your dbms, you could write a trigger so that when you delete a user from the active table, a corresponding record is inserted in the inactive table.
Or you could keep the "active/inactive" field, and write a view of active users defined as "SELECT * FROM users WHERE active=true". Remember to index the active field, and if your DBMS can move records around internally so that all the active records are physically grouped together on the disk, that would be a big win.