## Bug description

personal_api_key.last_updated_at is updated every request with API keys.

This is one of the most time-consuming queries we do against postgres: https://metabase.posthog.net/question/344-most-time-consuming-postgres-queries


## Environment

- [x] PostHog Cloud
- [ ] self-hosted PostHog (ClickHouse-based), version/commit: _please provide_
- [ ] self-hosted PostHog (Postgres-based, legacy), version/commit: _please provide_

## Additional context

There's a half-hearted attempt at fixing this over at https://github.com/PostHog/posthog/pull/10383, but this was shot down due to UX concerns.

#### *Thank you* for your bug report – we love squashing them!

posthog/auth.py
def authenticate(self, request: Request):
        
        
        if (
            request.headers.get("Origin")
            and urlsplit(request.headers["Origin"]).netloc not in urlsplit(request.build_absolute_uri("/")).netloc
        ):
            if not request.GET.get("temporary_token"):
                raise AuthenticationFailed(
                    detail="No temporary_token set. "
                    + "That means you're either trying to access this API from a different site, "
                    + "or it means your proxy isn't sending the correct headers. "
                    + "See https://posthog.com/docs/deployment/running-behind-proxy for more information."
                )
        if request.GET.get("temporary_token"):
            User = apps.get_model(app_label="posthog", model_name="User")
            user = User.objects.filter(is_active=True, temporary_token=request.GET.get("temporary_token"))
            if not user.exists():
                raise AuthenticationFailed(detail="User doesn't exist")
            return (user.first(), None)
        return None
def authenticate_secondarily(endpoint):