Lo ideal es que MySQL haga todo lo que le sea posible, y solo usar PHP cuando no queda otra opción. Asi se respeta el patrón MVC, separando bien las capas.
Para mi la forma mas simple de hacer eso es anidando un select dentro del insert, te pongo un ejemplo:
INSERT INTO alumnos (nombre,apellido,edad) VALUES ('Facundo','Lopez','27') WHERE (SELECT COUNT(*) AS total FROM alumnos)<500
Asi estaríamos limitando los registros a 500.
Saludos