мне нужно сохранить запись для пользователя по IP-адресу, чтобы ограничить скорость, с которой определенный IP-адрес может выполнять действие.
Я знаю, что сохранение IP-адреса в базе данных будет работать, но меня беспокоит, что на небольшом VPS с ограниченными ресурсами процесс MySQL потребует слишком много вычислительной мощности. Есть ли другой способ хранения данных для IP?
Я подумал о системе, подобной:
/ips/
/ips/127/
/ips/127/0
/ips/127/0/0
/ips/127/0/0/1.txt
Пример кода:
$ip_parts = explode('.', $_SERVER['REMOTE_ADDR']);
$records = intval(file_get_contents('ips/' . implode('/', $ip_parts)));
if($records > 50) {
echo 'Error - credits used.';
} else {
// Do something
}
С файлом 1.txt, содержащим необходимые данные. Могу ли я столкнуться с проблемами с количеством файлов или папок, из-за которых этот метод будет работать медленнее, чем база данных?