presseportale/app
Kevin Adametz 6a406bf577 Perf: accessibleBy() nutzt company_id-Subquery statt materialisiertem whereIn
scopeAccessibleBy() haengte den Firmenzugriff bisher als whereIn() mit allen
via accessibleCompanyIds() materialisierten Firmen-IDs an. Bei Power-Usern
(26k+ Firmen) ist das ein riesiger IN-Block im SQL.

Jetzt: orWhereIn('company_id', Company::accessibleBy($user)->select('id')) —
MySQL loest die Subquery als Semi-Join ueber den company_id-Index. Gleiche
Semantik (Company-Global-Scopes werden mitkompiliert), aber beschraenkte
SQL-Groesse und keine PHP-seitige ID-Liste mehr.

Benchmark (User 14016): ein korreliertes orWhereHas-EXISTS war ~3x langsamer
(1070ms vs 335ms COUNT) — die Subquery-whereIn-Form ist die schnellste.
accessibleCompanyIds() bleibt fuer canAccessCompany() erhalten.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 11:30:49 +00:00
..
Actions 29-05-2026 Optimierungen Fixes am Code 2026-05-29 12:42:05 +00:00
Console/Commands Optimierung 3.5: Kleinere Zentralisierungen (VAT, findByEmail, Waehrung, Provisioning) 2026-06-19 11:14:05 +00:00
Contracts 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Enums Optimierung Phase 0: Korrektheit & Security 2026-06-19 08:09:02 +00:00
Exceptions Proof-PDF + Extra-PM-Verkauf ueber die Credit-Wallet (Decision-Update 2.1/2.3) 2026-06-17 14:28:08 +00:00
Helpers 19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration 2026-05-19 16:36:13 +00:00
Http Optimierung 4.3/4.4 (Home): Page-Data-Service + Invokable Controller 2026-06-19 12:14:38 +00:00
Jobs User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
Listeners Optimierung 3.5: Kleinere Zentralisierungen (VAT, findByEmail, Waehrung, Provisioning) 2026-06-19 11:14:05 +00:00
Livewire Optimierung 5.2 (Teil 1): ProvidesUserFormRules-Concern 2026-06-19 12:41:57 +00:00
Mail 19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration 2026-05-19 16:36:13 +00:00
Models Perf: accessibleBy() nutzt company_id-Subquery statt materialisiertem whereIn 2026-06-30 11:30:49 +00:00
Observers 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Policies Proof-PDF + Extra-PM-Verkauf ueber die Credit-Wallet (Decision-Update 2.1/2.3) 2026-06-17 14:28:08 +00:00
Providers Optimierung 3.6: Zugriffs-Gates und getrennte Impersonation-Sperre 2026-06-19 11:20:28 +00:00
Scopes 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Services Optimierung 5.1: Tabellen-Concerns (Sortierung, Volltext-Heuristik, Stats) 2026-06-19 12:36:48 +00:00
Support Optimierung 4.1: Web-Portal-/Domain-Kontext extrahiert 2026-06-19 11:42:00 +00:00