Heim  >  Artikel  >  Datenbank  >  Was ist leistungsfähiger: PDO::rowCount() oder COUNT(*) mit oder ohne Index?

Was ist leistungsfähiger: PDO::rowCount() oder COUNT(*) mit oder ohne Index?

Barbara Streisand
Barbara StreisandOriginal
2024-10-24 07:14:02353Durchsuche

Which is More Performant: PDO::rowCount() or COUNT(*) With or Without an Index?

PDO::rowCount vs. COUNT(*) Leistungsvergleich

Frage:

Was schneidet bei einer SELECT-Abfrage mit einer Zeilenanzahlprüfung besser ab: die Verwendung von PDO::rowCount() oder die Einbeziehung von COUNT(*) in die Abfrage? Welche Option ist außerdem effizienter, wenn ein Index für das ID-Feld festgelegt wird?

Antwort:

1. Frage: Anzahl(*) vs. PDO ::rowCount()

Intern reserviert COUNT() in MySQL minimalen Speicher, um nur das Zählergebnis zu speichern, während PHP die gesamte Ergebnismenge in PDO::rowCount() verarbeitet und Speicher für alle reserviert abgerufene Ergebnisse. Daher ist COUNT() in MySQL schneller.

2. Frage: COUNT(id) vs. COUNT(*) mit Index

COUNT() ist wird gegenüber COUNT(id) bevorzugt, selbst wenn ein Index für das ID-Feld festgelegt ist. Dies liegt daran, dass COUNT() für das schnelle Zählen von Werten optimiert ist, wodurch die Notwendigkeit verringert wird, jede Zeile abzurufen, während COUNT(id) den Zugriff auf jede Zeile erfordert, was möglicherweise die Leistung verringert.

Das obige ist der detaillierte Inhalt vonWas ist leistungsfähiger: PDO::rowCount() oder COUNT(*) mit oder ohne Index?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn