Nein, MySQL verwendet nicht den gleichen Suchalgorithmus, um eine Tabelle zu finden.
MySQL verwaltet ein "Datenwörterbuch" im Arbeitsspeicher. Wenn Sie also eine Abfrage ausführen, die eine bestimmte Tabelle angibt, sucht sie diese Tabelle sehr schnell. Es ist viel schneller für MySQL, eine Tabelle zu identifizieren, als nach Daten in einer Tabelle zu suchen. Zum Beispiel haben die Datenbankserver, die ich bei meinem Job betreue, mehr als 150.000 Tabellen, und das ist kein Problem.
Bedeutet dies, dass Sie Ihre Daten über viele Tabellen aufteilen sollten, damit sie schneller laufen? Nein - das ist normalerweise kein guter Kompromiss. Es macht Ihren Anwendungscode komplexer, da Ihr Code auswählen muss, welche Tabelle abgefragt werden soll. Sie können auch Fälle finden, in denen die Daten in einer Tabelle gespeichert werden sollen, wenn Sie in vielen Ihrer Tabellen nach Ergebnissen suchen müssen.
Hier sind ein paar Prinzipien zu folgen: „sollte alles so einfach wie möglich gemacht werden, aber nicht einfacher“
(attributed to Albert Einstein)
"Zuerst machen Sie es, dann machen Sie es richtig, und schließlich machen Sie es schnell." (Stephen C. Johnson und Brian W. Kernighan, 1983)
Wie würden Sie nach einer Tabelle suchen? 'Wählen Sie * aus information_schema.tables'? Eine Tabelle ist eine Tabelle ist eine Tabelle. – JNevill
Wenn Sie über 1000 Tabellen mit derselben Struktur verfügen, müssen Sie den Datenbankentwurf lesen. Wenn Sie nicht wissen, aus welcher Tabelle Sie Daten abrufen möchten, weil sie unterschiedlich sind, müssen Sie sich besser mit Ihrem Datenbankentwurf vertraut machen, und Sie sind nicht qualifiziert, diese abzufragen, bis Sie wissen, was jede Tabelle tut und die Bedeutung versteht der Daten. Normalerweise schreiben Sie keine Abfragen, um nach Tabellen zu suchen. – HLGEM
Ich würde wetten, dass Sie einen rooky Fehler in Ihrem Datenbankentwurf gemacht haben. Warum möchten Sie nach einer Tabelle suchen, bitte erläutern Sie – RiggsFolly