Heim > Artikel > Backend-Entwicklung > Sollte ich in Thinkphp in ids oder left join für MySQL-Abfragen mit zwei Tabellen verwenden (im Fall von Paging beträgt das ids-Array normalerweise etwa 20)?
Ich weiß nicht, welche Lösung besser ist
Ich habe im Buch gelesen, dass es sich normalerweise um eine Split-Table-Abfrage handelt, die sich gut für das Caching eignet
Ich weiß nicht, welche Lösung besser ist
Ich habe im Buch gelesen, dass es sich normalerweise um eine Split-Table-Abfrage handelt, die sich gut für das Caching eignet
Es hängt hauptsächlich von der Datenmenge und den Anwendungsszenarien ab. Wenn die Datenmenge klein ist, sind die beiden fast gleich: Welche ist effizienter, wo in() Abfrage oder Multi-Table-Links-Join gemeinsame Anfrage?
Sie sprechen von einem SQL-Problem. Die Zahl der Menschen, die Left Join verwenden, ist weitaus größer als die, die in verwenden.
Die Verwendungsszenarien dieser beiden Syntaxen sind unterschiedlich. In kennt die ID, um die Datensätze herauszufiltern, die Ihrer ID-Gruppe entsprechen, während Left Join eine verknüpfte Tabelle ist. Wenn ich Paging durchführe, überprüfe ich, ob die zugehörige Tabelle eine große Tabelle ist (Hunderttausende oder Millionen Datensätze) und entscheide dann, ob ich Left Join verwende. Selbst wenn ich Join verwende, ist es am besten, dies zu erklären und zu sehen Wenn es optimal ist, nein. Wenn ja, schauen Sie sich die Erklärungsergebnisse an und optimieren Sie es. Es wird empfohlen, bei sehr großen Tabellen nicht zu verknüpfen. Wenn Sie in verwenden, sollte es beim Extrahieren von IDs und beim Abfragen der sekundären Tabelle zum Zusammenfügen der Daten in den Haupttabellendatensatz nicht zu mehreren Schleifen kommen, und die Effizienz wird nicht unbedingt so langsam sein .