Optimierung der Ladegeschwindigkeit des Bootstrap Admin Panels
Leitfaden zur Leistungsverbesserung

Erfahren Sie, wie Sie Ihre Listen mit dem CRUD Generator richtig konfigurieren, um lange Ladezeiten zu vermeiden.


Optimieren Sie die Ladegeschwindigkeit Ihres Administrationspanels

Mit dem PHP CRUD Generator sollte die Ladezeit Ihres Admin-Panels READ-Listen im Allgemeinen schnell sein und höchstens ein paar Sekunden betragen. Ungewöhnlich lange Ladezeiten sind entweder auf die Konfiguration Ihrer Filter oder die Anzahl der Abfragen zurückzuführen, die zur Anzeige der Daten erforderlich sind.

In beiden Fällen ist die Lösung mit dem CRUD Generator einfach zu implementieren. Hier erfahren Sie, wie Sie vorgehen, um die Ladezeit zu verkürzen.


1. Filter aufzeichnen

Operation

Select with all records loaded
Auswahl mit allen geladenen Datensätzen

Wenn Sie einen Datensatzfilter zu Ihrer READ-Liste hinzufügen, sendet das Programm die SQL-Abfrage und ruft alle Datensätze aus der Datenbank ab. Es erzeugt dann ein Auswahlfeld, das so viele Optionen enthält, wie Sie Datensätze haben.

Dies ist perfekt für eine Tabelle, die ein paar Dutzend oder sogar Hunderte von Datensätzen enthält, aber wenn Ihre Tabelle Tausende von Datensätzen enthält, wird dies die Ladezeit der Seite erheblich verlängern.

Lösung

In diesem Fall müssen Sie das Ajax-Laden aktivieren, wenn Sie Ihren Filter mit dem CRUD-Generator erstellen.
Wenn das Ajax-Laden aktiviert ist, lädt die Seite ein einfaches Eingabefeld, das mit einem Plugin zur automatischen Vervollständigung verbunden ist. Das Plugin holt die Datensätze bei Bedarf für die automatische Vervollständigung ab. Auf diese Weise vermeiden Sie das Laden schwerer und unnötiger Daten beim Laden Ihrer Hauptseite.

Enable Ajax loading for your filter from the generator
Aktivieren Sie das Ajax-Laden für Ihren Filter aus dem Generator
Admin filter with Ajax loading enabled
Admin-Filter mit aktiviertem Ajax-Laden

Hinweis: Filter sind voneinander abhängig. Wenn eine Filmliste beispielsweise nach Titel und Sprache gefiltert werden kann und Sie nur englische Filme anzeigen, wird der Titelfilter nur englische Titel anbieten.


2. An die Datenbank gesendete Abfragen

Operation

Wenn Sie eine Liste von Datensätzen aus Ihrer Datenbank laden, führt das Programm die folgenden Abfragen durch:

  • Eine Abfrage zum Abrufen der Gesamtzahl der Datensätze, die die Erstellung der Paginierung ermöglicht.
  • Eine Abfrage zum Abrufen der auf der Seite angezeigten Datensätze.
  • Eine Abfrage pro Filter, wenn Sie Filter aktiviert haben und diese nicht mit Ajax geladen werden.

Wenn Sie externe Beziehungen aktiviert haben, führt das Programm auch die folgenden Abfragen durch:

  • Eine Abfrage pro Datensatz und pro Beziehung, um die Bezugsdatensätze abzurufen (wenn Sie externe Beziehungen aktiviert haben).

Beispiel

Admin panel count queries
Admin Panel Abfragen zählen

Wenn Sie z.B. eine Filmtabelle haben, die mit einer Schauspielertabelle und einer Kategorietabelle verknüpft ist, und Sie die Anzeige von Schauspielernamen und Kategorien in der Filmliste aktiviert haben, führt das Programm zwei Abfragen für jeden Film durch, um die Schauspielernamen und Kategorien abzurufen.
Wenn Sie 20 Filme pro Seite anzeigen, erhalten Sie folgendes Ergebnis:

  1. Paginierung: 1 Abfrage
  2. Datensätze: 1 Abfrage
  3. Nicht-Ajax-Filter: 1 Abfrage pro Filter
  4. Akteure (externe Beziehung): 20 Abfragen
  5. Kategorien (externe Beziehung): 20 Abfragen

Insgesamt: 42 Abfragen (+ Filter)

Lösung

Normalerweise ist selbst eine relativ große Anzahl von Abfragen kein Problem, da diese Abfragen nur eine begrenzte Anzahl von Datensätzen zurückgeben. Sie sind daher effizient und schnell. Wenn Sie dennoch übermäßig lange Ladezeiten haben, können Sie die Anzeige bestimmter externer Beziehungen in der Hauptliste deaktivieren und sie auf einer anderen Seite anzeigen lassen. Sie können auch die Anzahl der angezeigten Datensätze pro Seite begrenzen.


3. MySQL-Indizes verwenden

Operation

Dies betrifft nicht PHPCG, sondern direkt die Struktur Ihrer Datenbank. Fügen Sie für jedes Feld, das regelmäßig in Ihren Abfragen verwendet wird, einen Index hinzu. Die MySQL-Engine ist mit indizierten Feldern schneller und effizienter.

Lösung

Um Ihre Felder zu indizieren:

  1. Öffnen Sie Ihren Datenbankmanager (phpMyAdmin oder andere).
  2. Zeigen Sie die Struktur Ihrer Tabelle.
  3. Markieren Sie die Felder, die Sie indizieren möchten.
  4. Klicken Sie auf die Schaltfläche Index.

PHP CRUD-Tutorial Hauptseite