So führen Sie eine paginierte Abfrage durch: 1. Für MySQL wird die Verwendung von Unterabfragen und Verknüpfungen nicht empfohlen, da die Effizienz von Verknüpfungen ein Nachteil ist. Sobald die Datenmenge groß ist, ist die Effizienz schwer zu gewährleisten. Es wird dringend empfohlen, Daten basierend auf dem Index aus einer einzelnen Tabelle abzurufen und die Daten dann im Programm zu verknüpfen und zusammenzuführen. 1. Vorteile der Application Layer AssociationMachen Sie den Cache effizienter. Viele Anwendungen können die Ergebnisobjekte, die Einzeltabellenabfragen entsprechen, problemlos zwischenspeichern. Wenn sich eine Tabelle in der Zuordnung ändert, kann der Abfragecache nicht verwendet werden. Wenn sich eine Tabelle nach der Aufteilung selten ändert, kann die auf der Tabelle basierende Abfrage die Ergebnisse des Abfragecaches wiederverwenden. Durch Aufteilen der Abfrage in einzelne Teile können Sperrkonflikte reduziert werden. Durch die Erstellung von Verknüpfungen auf der Anwendungsebene lässt sich die Datenbank leichter aufteilen und eine hohe Leistung und Skalierbarkeit erreichen. Auch die Effizienz der Abfrage selbst kann verbessert werden. Wenn Sie einen ID-Satz abfragen, kann MySQL durch die Verwendung von IN() anstelle einer Join-Abfrage die Abfrage in der Reihenfolge der IDs durchführen, was effizienter sein kann als ein zufälliger Join. Dadurch kann die Anzahl redundanter Datensatzabfragen reduziert werden. Bei einer assoziativen Abfrage auf Anwendungsebene muss die Anwendung einen bestimmten Datensatz nur einmal abfragen, während eine assoziative Abfrage in der Datenbank Folgendes erfordern kann: Um wiederholt auf einen Datenteil zuzugreifen. Aus dieser Sicht kann eine solche Rekonstruktion auch den Netzwerk- und Speicherverbrauch reduzieren. Darüber hinaus entspricht dies der Implementierung eines Hash-Joins in der Anwendung, anstatt den Nested Loop Join von MySQL zu verwenden. In einigen Szenarien ist die Hash-Assoziation viel effizienter. 2. Anwendungsschichtzuordnungs-NutzungsszenarienWenn die Anwendung die Ergebnisse einer einzelnen Abfrage bequem zwischenspeichern kann Wenn Sie Daten auf verschiedene MySQL-Server verteilen können Wann IN() anstelle einer Join-Abfrage verwendet werden kann Es gibt viele gleichzeitige Szenarien und häufige DB-Abfragen, daher ist Sharding erforderlich 3. Gründe, warum ein Beitritt nicht empfohlen wird 1. Die DB steht unter großem wirtschaftlichen Druck und möchte diese Belastungen möglichst reduzieren. Wenn die Tabelle mehr als eine Million Seiten umfasst, führen Verknüpfungen zu einer Verschlechterung der Leistung. 4. Lösung ohne Join Auf der Geschäftsebene werden Daten, nachdem eine einzelne Tabelle abgefragt wurde, als Bedingung für die nächste Einzeltabellenabfrage verwendet. Das heißt, eine Unterabfrage. Ich befürchte, dass die Unterabfrage zu viele Ergebnismengen liefert. MySQL hat keine Begrenzung für die Anzahl der INs, aber MySQL begrenzt die Größe der gesamten SQL-Anweisung. Durch Anpassen des Parameters max_allowed_packet können Sie den Maximalwert einer SQL-Anweisung ändern. Es wird empfohlen, das Geschäft ordnungsgemäß abzuwickeln und den Ergebnissatz einer einzelnen Abfrage auf ein akzeptables Maß zu begrenzen. 5. Vorteile der Join-AbfrageDer Vorteil einer verknüpften Abfrage besteht darin, dass sie paginiert werden kann und die Felder der sekundären Tabelle als Abfragebedingungen verwendet werden können. Bei der Abfrage werden die von der sekundären Tabelle übereinstimmenden Felder als Ergebnismenge verwendet und die primäre Tabelle wird darin verwendet. Das Problem besteht jedoch darin, dass es nicht funktioniert, wenn die Menge der übereinstimmenden Daten zu groß ist, und die zurückgegebenen Paging-Datensätze von den tatsächlichen abweichen. Die Lösung kann an das Front-End übergeben werden, eine einmalige Abfrage, und das Front-End kann sie stapelweise anzeigen. Die Voraussetzung dieser Lösung ist, dass die Datenmenge nicht zu groß ist, da die Länge von SQL selbst begrenzt ist. Damit ist dieser Artikel darüber, warum MySQL die Verwendung von Unterabfragen und Verknüpfungen nicht empfiehlt, abgeschlossen. Weitere relevante MySQL-Unterabfragen und -Verknüpfungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: WebWorker kapselt JavaScript-Sandbox-Details
>>: Informationen zur Nginx-GZIP-Konfiguration
Inhaltsverzeichnis Einführung: Installation von E...
Unsere erfahrenen Vorgänger haben zahllose Codes ...
Plätzchen Dies ist eine Standardmethode zum Speic...
1. Verbindung zu MySQL herstellen Format: mysql -...
<br />Ich habe mir heute die neu gestaltete ...
1. Einleitung Der Hauptvorteil, den SELinux für L...
Laderegeln der Require-Methode Laden aus dem Cach...
1: MySql herunterladen Offizielle Download-Adress...
Vorwort Beim Erstellen einer Seite stoßen wir häu...
MySQL-Einstellungscode für grüne Version und Fehl...
Vorbemerkungen 1.Unterschiede zwischen Vue2.x und...
In tatsächlichen Projekten befinden sich die Bild...
MySQL-Mehrtabellenabfrage (kartesisches Produktpr...
1 Problembeschreibung Die kombinierte API von Vue...
Als ich heute Nginx verwendete, trat ein 500-Fehl...