Economizar ip, tempo e número de acessos ao banco de dados é bom, algumas centenas de linhas não é um problema para um banco de dados mysql (não se esqueça de definir os índices na tabela).
Mas observe que usuários com IP compartilhado podem ter problemas para acessar sua página.
O uso de cookies é problemático porque o usuário pode controlar isso e você não pode restringir isso. Claro, depende do seu aplicativo quão importante é bloquear o usuário após n acessos.