При каждом добавлении новой записи такой запрос делать не нужно.
Варианта вижу два:
1. Запускать по расписанию скрипт, удаляющий все лишние записи раз в сутки, например (суть скрипта уже описал
@svd71).
2. При добавлении нового результата удалять второй (сортируем, задаем offset). Остается вопрос обработки первых 30 игр. Его можно решить, например, создавая после первой игры еще 29 нулевых значений (на мой взгляд, такое решение удобнее, чем каждый раз проверять, появилась, существует ли уже 30 записей).