Leistung und Effizienz sind wichtige Überlegungen bei der Verwendung von PHP zum Betrieb von MySQL-Datenbanken, insbesondere bei der Verarbeitung großer Abfrageergebnisse. MySQLI_Result :: $ Längen ist ein Attribut in der MySQLI -Erweiterung, das die Datenlänge jedes Feldes im aktuellen Ergebnissatz erhält. Wenn Sie rational rational sind, optimieren Sie die Lesen und Verarbeitung von Daten und die Verbesserung der Effizienz der Programmausführung.
$ Längen ist ein Attribut des MySQLi_Result -Objekts, das ein Array zurückgibt, und jedes Element im Array entspricht der Bytelänge des entsprechenden Feldes in der aktuellen Ergebniszeile. Sein typisches Nutzungsszenario besteht darin, es in Verbindung mit Methoden wie MySQLI_stmt :: Fetch oder Mysqli_Result :: Fetch_row usw. zu verwenden, was die Felddatengröße genau erhalten und den zusätzlichen Speicheraufwand vermeiden kann, der durch unklare Feldinhaltslänge verursacht wird.
Wenn Sie die genaue Länge der Daten kennen, können Sie bei der Verarbeitung von Feldern mit großem Text, großen Binärdaten (BLOB) oder unregelmäßiger Länge helfen:
Vermeiden Sie unnötige Stringkürzung oder Erweiterung.
Optimieren Sie die Speicherverwaltung, um zu vermeiden, dass ein zu großer oder zu kleiner Cache -Speicherplatz vorhanden ist.
Streaming -Lesedaten liefert genaue Grenzen und reduziert doppelte Lesevorgänge.
Das folgende Beispiel zeigt, wie $ Längen zum Lesen und Verarbeiten von Daten bei der Verarbeitung von Big Data kombiniert werden kann, um die Effizienz zu gewährleisten:
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
if ($mysqli->connect_errno) {
die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}
$query = "SELECT id, large_text_column FROM big_table";
$result = $mysqli->query($query);
if ($result === false) {
die("Abfrage fehlgeschlagen: " . $mysqli->error);
}
// Iterieren Sie über das Ergebnissatz,verwenden lengths Holen Sie sich die Byte -Länge jedes Feldes
while ($row = $result->fetch_row()) {
// $result->lengths ist das Längenarray aller Felder in der aktuellen Reihe
$lengths = $result->lengths;
// Zum Beispiel bekommen large_text_column Feldlänge(Angenommen, es ist das zweite Feld)
$textLength = $lengths[1];
// Steuern Sie die Verarbeitung von Feldern über die Länge
$largeText = substr($row[1], 0, $textLength);
// Hier ist es in Ordnung $largeText Weitere Verarbeitung machen,Zum Beispiel in eine Datei schreiben,Oder Streaming
echo "ID: " . $row[0] . " - Textlänge: " . $textLength . "\n";
}
$result->free();
$mysqli->close();
?>
Holen Sie sich die Byte-Länge jedes Feldes der Stromleitung über $ result-> Längen und vermeiden Sie den zusätzlichen Aufwand der Berechnung der Stringlänge.
Bei großen Textfeldern kann die direkte Verwendung von $ Längen die Datenlänge genau lesen, um eine ungenaue Länge zu vermeiden, da die Unterschiede auf Zeichencodierungen ungenau sind.
Kombinieren Sie Funktionen wie Substr , können wir mehr feines Speichermanagement und Datenschneide durchführen.
Verwenden Sie abgelöste Abfragen : Für besonders große Ergebnissätze kann die Verwendung von abgelassenen Abfragen ( MySQLI_USE_RESULT ) die Speicherverwendung reduzieren und mit $ Längen besser funktionieren.
Vermeiden Sie unnötige Datenübertragung : Befragen Sie nur die erforderlichen Felder, um den Übertragungsdruck zu verringern.
Streaming großer Felder : Wenn Sie Blobs oder großen Text verarbeiten, sollten Sie das Lesen nicht einst Streaming anstatt ein einmaliges Laden erwägen.
MySQLI_Result :: $ Längen ist eine detaillierte, aber äußerst nützliche Eigenschaft, wenn PHP MySQL betreibt. Insbesondere im Umgang mit großen Datenabfrageergebnissen kann es die Datenlänge und die Speicherallokation genau steuern und die Programmleistung verbessern. Es kann seine Vorteile besser mit abgelösten Abfragen und Streaming -Verarbeitung spielen.
Verwandte Tags:
mysqli_result