presseportale/config
Kevin Adametz 8fc18c239b technik: Volltext-Indizes von press_releases in eine eigene Suchtabelle auslagern
Ein FULLTEXT-Index zwingt MySQL bei JEDEM ADD COLUMN auf ALGORITHM=COPY. Auf
press_releases (>1 GB) bedeutet das einen vollständigen Rebuild, während dessen
kein Schreibzugriff möglich ist — im August hat genau das die Seite zum Stehen
gebracht, weil die wartenden Requests PHP-FPM-Worker und DB-Verbindungen
belegten.

Die durchsuchbaren Felder liegen jetzt gespiegelt in `press_release_search`,
die die Indizes trägt. Ihr Schema ist per Konstruktion stabil und wird nie
erweitert; neue Felder gehören nach press_releases, wo sie ohne Volltext-Index
Millisekunden kosten. Synchron hält sie ein Observer (alle Schreibzugriffe
laufen über Eloquent, auch der Importer), reparieren lässt sie sich mit
press-releases:reindex-search.

Der Umstieg ist über mehrere Migrationen geteilt und schaltet erst um, wenn
press_releases seine Indizes verloren hat — bis dahin sucht die Anwendung
unverändert weiter. Die Drop-Migration verweigert den Dienst, solange der
Suchindex unvollständig ist, und verwirft die gecachte Umschalt-Prüfung: Stünde
dort noch der alte Stand, setzte der Rückfallpfad sein MATCH() auf einen
soeben entfernten Index ab (MySQL-Fehler 1191) und jede Suche endete im 500er.

Dazu die betriebliche Absicherung:

- DB_LOCK_WAIT_TIMEOUT (Default 10 s) statt MySQLs einem Jahr. Requests
  scheitern bei einer laufenden Schemaänderung nach Sekunden, statt sich
  aufzustauen, bis keine Verbindung mehr frei ist.
- Sessions und Cache nach Redis, damit eine blockierte MySQL-Tabelle nicht die
  gesamte Anwendung mitreißt.
- db:online-alter als Notausgang (pt-online-schema-change), falls eine der
  kleinen FULLTEXT-Tabellen doch einmal groß wird. Percona-Toolkit ist
  bewusst nicht Teil des Standard-Setups.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-01 11:04:43 +00:00
..
admin_performance.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
app.php Zeitzone Europe/Berlin: unnoetige UTC-Konvertierung entfernt 2026-06-18 12:40:19 +00:00
auth.php Optimierung Phase 0: Korrektheit & Security 2026-06-19 08:09:02 +00:00
billing.php recht: Meldeverfahren v2 Phasen 5+7 — DSGVO-Strukturformular, 10-€-Checkout mit KI-Vorprüfung, Triage & Panel-Modal 2026-07-23 13:02:57 +00:00
blacklist.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
blade-icons.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
cache.php first commit 2025-10-20 17:53:02 +02:00
cashier.php USt-Behandlung: Netto-Preise, VatResolver und Steuer-Ausweis im MAN-Kreis 2026-06-12 10:58:43 +00:00
countries.php Rechnungsadressen der Bestandskunden aus dem Legacy-Archiv uebernehmen 2026-07-06 12:19:50 +00:00
credits.php Boost-Slot-Grenzen (5/3) + Kategorie-Boost zum halben Satz 2026-07-13 12:28:03 +00:00
database.php technik: Volltext-Indizes von press_releases in eine eigene Suchtabelle auslagern 2026-09-01 11:04:43 +00:00
domains.php Backend-WIP: Kontakt-Queue, Page-Cache, Validierungs-Feedback, i18n 2026-07-09 15:38:11 +00:00
filesystems.php first commit 2025-10-20 17:53:02 +02:00
fortify.php first commit 2025-10-20 17:53:02 +02:00
legal.php recht: Meldeverfahren v2 Phasen 5+7 — DSGVO-Strukturformular, 10-€-Checkout mit KI-Vorprüfung, Triage & Panel-Modal 2026-07-23 13:02:57 +00:00
livewire.php first commit 2025-10-20 17:53:02 +02:00
logging.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
mail.php first commit 2025-10-20 17:53:02 +02:00
market.php Spoke-Frontend-Audit: Fake-Inhalte raus, Newsletter-Rueckbau, echte Boersendaten, EN-Lokalisierung 2026-07-06 13:36:23 +00:00
models.php 29-05-2026 Optimierungen Fixes am Code 2026-05-29 12:42:05 +00:00
monitoring.php Monitoring (R5.3): Betriebs-Alerts fuer Scheduler-/Queue-Ausfaelle 2026-07-09 15:34:40 +00:00
newsletter.php admin: Newsletter mit Abmelde-Liste, Follow-up-Filtern und gedrosseltem Versand 2026-07-22 12:38:47 +00:00
permission.php 29-05-2026 Optimierungen Fixes am Code 2026-05-29 12:42:05 +00:00
purifier.php admin: internes Newsletter-Modul mit Filtern, Protokoll und Abmeldung 2026-07-21 09:26:57 +00:00
queue.php first commit 2025-10-20 17:53:02 +02:00
salutations.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
sanctum.php 29-05-2026 Optimierungen Fixes am Code 2026-05-29 12:42:05 +00:00
scoring.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
services.php Umami-Webanalyse eingebaut, bis zum Go-Live deaktiviert 2026-07-06 08:56:14 +00:00
session.php first commit 2025-10-20 17:53:02 +02:00
vite.php 19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration 2026-05-19 16:36:13 +00:00