Это действительно зависит от количества серверов, набора данных, количества пользователей и т. Д.
Один из подходов состоит в том, чтобы сохранить структуру данных квоты в памяти на сервере и обновлять ее для каждого вызова. Если у вас есть несколько серверов, вы можете сохранить memcache квоты. Очевидно, что реализация на основе памяти не выдержит перезагрузки или перезапуска, поэтому для ее поддержки потребуется какая-то сериализация.
Если точность квот критична, то лучше всего сделать это в БД. Вы можете сделать это в файле, но тогда вы столкнетесь с теми же проблемами, которые пытаетесь избежать / w в базе данных.
EDIT:
Вы также можете использовать смешанный подход - поддерживать кэш на основе памяти счетчиков вызовов user | api | и периодически записывать их в базу данных.
Немного больше информации о требованиях поможет сократить параметры ..