Если вы беспокоитесь о достижении максимального размера, который может представлять целое число, вы можете использовать bigint без знака вместо int.
Это типы целых чисел, доступные вам в MySQL:
TINYINT - 127
UNSIGNED TINYINT - 255
SMALLINT - 32767
UNSIGNED SMALLINT - 65535
MEDIUMINT - 8388607
UNSIGNED MEDIUMINT - 16777215
INT - 2147483647
UNSIGNED INT - 4294967295
BIGINT - 9223372036854775807
UNSIGNED BIGINT - 18446744073709551615
Кроме того, из соображений производительности следует избегать изменения и удаления каждой вставки. В качестве альтернативы, вы можете просто вставить всякий раз, когда есть новая запись и позволить увеличить идентификатор. Если вы хотите 30 самых последних строк, выберите их по убыванию идентификатора и ограничьте до 30.
select * from news order by id desc limit 30
Один раз в день или по некоторому расписанию вы можете выполнить очистку, чтобы удалить все, кроме самых последних 30,если они не представляют для вас исторической ценности.
Например:
DELETE FROM `news`
WHERE id NOT IN (
SELECT id
FROM (
SELECT id
FROM `news`
ORDER BY id DESC
LIMIT 30
)
);