Thinkorm ist eine Open -Source -PHP -ORM -Bibliothek, die eine präzise Datenbankbetriebsmethode bietet. In der tatsächlichen Entwicklung stoßen wir häufig auf das Problem der ineffizienten Datenbankabfrage, was zu einer übermäßigen Netzwerkübertragungszeit führt. In diesem Artikel wird die Optimierung von Datenbankabfrageanweisungen durch ThinkOrM vorgestellt, um die Netzwerkübertragungszeit zu verkürzen.
Zunächst müssen Sie die Thinkorm Library installieren. Sie können es über den Komponisten installieren und den folgenden Befehl ausführen:
Der Komponist benötigt Topdink/Denkmurm
Nach Abschluss der Installation müssen Sie die Datenbankverbindungsinformationen in der Konfigurationsdatei der Anwendung konfigurieren. Fügen Sie beispielsweise Folgendes in config/database.php hinzu:
Zurückkehren [ 'Typ' => 'mySQL', 'Hostname' => '127.0.0.1', 'Datenbank' => 'Database_Name', 'Benutzername' => 'root', 'Passwort' => 'Passwort', 'Hostport' => '3306', 'charset' => 'utf8', 'Präfix' => '', 'debug' => false, 'Bereitstellen' => 0, 'rw_separate' => false, 'master_num' => 1,, 'fields_strict' => true, 'resultSet_type' => 'Array', 'auto_timestamp' => false, 'DateTime_Format' => 'YMD H: i: S', 'sql_explain' => false, ];
Als nächstes werden wir mehrere Beispiele verwenden, um zu zeigen, wie man ThinkOrM verwendet, um Abfrageanweisungen zu optimieren und die Netzwerkübertragungszeit zu verkürzen.
Wenn wir standardmäßig die Methode zum Suchen oder auswählen, werden alle Spalten zurückgegeben. Tatsächlich benötigen wir möglicherweise nur Daten für bestimmte Spalten, sodass wir die Auswahlmethode verwenden können, um die Spalten anzugeben, die abgefragt werden müssen, wodurch die Menge der übertragenen Daten verringert wird.
// Abfragen Sie den Namen und die E-Mail des Benutzer mit id 1 $ user = db :: table ('user')-> wobei ('id', 1)-> auswählen ('Name, E-Mail')-> find ();
In einigen Fällen müssen wir relevante Daten aus mehreren Datentabellen abfragen. Zu diesem Zeitpunkt können Sie die Join -Methode verwenden, um Assoziationsabfragen durchzuführen, um die mehrmalige Abfragung der Datenbank zu vermeiden.
// Die Bestellinformationen des Benutzers befragen $ order = db :: table ('order')-> alias ('o') -> join ('user u', 'o.user_id = u.id') -> field ('o.order_id, o.create_time, U.Name') -> wo ('u.id', 1) -> select ();
Wenn wir nur die ersten Daten anstelle aller Daten abfragen müssen, können wir die Grenzmethode verwenden, um den Ergebnissatz der Abfrage zu begrenzen und so die Menge der Datenübertragung zu verringern.
// Die ersten 10 Bestellinformationen $ Bestellungen = db :: table ('order')-> limit (10)-> select ();
Wenn sich die Abfragendaten für einen bestimmten Zeitraum nicht ändern, können Sie die Cache -Methode verwenden, um die Abfrageergebnisse zu speichern. Auf diese Weise können Daten bei nachfolgenden Abfragen direkt aus dem Cache erhalten werden, um den Datenbankzugriff zu reduzieren.
// den Benutzer mit ID 1 abfragen und das Ergebnis zwischen $ user = db :: table ('user')-> wobei ('id', 1)-> cache (true)-> find (); // Erhalten Sie das Ergebnis direkt vom Cache während der zweiten Abfrage $ user = db :: table ('user')-> wobei ('id', 1)-> cache (true)-> find ();
In den obigen Beispielen können wir sehen, dass ThinkOrM eine Vielzahl von Möglichkeiten zur Optimierung von Abfragen wie selektive Abfragen, zugehörigen Abfragen, eingeschränkten Abfragen und zwischengespeicherten Abfragen bietet. Mit diesen Optimierungsfunktionen kann die Effizienz von Datenbankabfragen erheblich verbessert werden, unnötiges Netzwerkübertragung kann reduziert werden, wodurch die Systemleistung und die Benutzererfahrung verbessert werden.