I, for one, would do it differently. I understand the speed aspect of it, but there has to be a way to segment the database so that only the active players are in the 'in memory' database. The remaining historical information should be relegated to disk.