Andreas Korthaus: temporäre Tabellen

Beitrag lesen

Hi Andre!

So wie ich das verstanden habe, sind die Temporären Tabellen, so lange existent, für alle Clients "gültig". Das heißt wenn cihd ei Tabelle "temp_table" nenne, kann es bei gleicheitigen Zugriffen auf das Script welches die temp-Tabelle erzeugt zu Konflikten kommen.

Nein. Da der Name einer temporären Tabelle an die Verindung gebunden ist.

stimmt.

  1. Mir geht es vor allem auch um ORDER BY, und das kann HEAP nicht, oder? Komme ich dann um MyISAM nicht herum?

Eine HEAP Tabelle ist für jeden Client sichtbar, nicht wie eine temporäre Tabelle. IMHO kann eine temporäre Tabelle nicht vom Typ HEAP sein. Aber das ist ja in einem Selbstversuch leicht zu ermitteln.

das ist eine MyISAM Tabelle auch, udn trotzdem muß man meiens Wissens den Typ der temporären Tabelle angeben, also entweder myISAM oder HEAP. Udn ich dachte mir das es gerade hierfür schneller ist wenn man auf Plattenzugriffe verzichten kann.

HEAP-Tabellen müßen gelöscht werden, oder gehen bei einem Systemstarverloren.

Ja, das ist ja egal! Es sollen ja nur temp. Tabellen sein. Temporäre Tabellen ist doch kein weiterer Tabellentyp, sondern eine mySQL Funktion die dafür sorgt das die Tabelle nur für die Dauer und überhaupt nur für die eigene Verbindung sichtbar/vorhanden ist.

HEAP-Tabellen kennen den Spaltentyp TEXT nicht. Du kannst als nicht die Nachricht selbst in der Tabelle ablegen.

Das mache ich eh nicht, ich braucht den Text ja vorerst nicht zum anzeigen.

Es macht nur Sinn Subjekt,Name ,Id abzulegen.

genau, hatte ich auch vor, dazu time, da ich ja danach sortieren will.

Du mußt auch die Anzahl der Zeile beschränken, wie Du schon geschrieben hast.
Doku: "Sie sollten immer MAX_ROWS im CREATE-Statement angeben, um sicherzustellen, dass Sie nicht versehentlich den gesamten Arbeitsspeicher benutzen."

MAX ROW bezieht sich doch bestimmt auf CREATE TABLE, oder?

Bei jedem Zugriff auf eine HEAP-Tabelle muß immer überprüft werden, ob es die Tabelle noch gibt. Wenn nicht muß sie neu angelegt werden.

Ich will die Tabelle bei jedem Zugriff neu erstellen! Ich will darein die unsortierten Ergebnsse der Such eschreiben(also in eine leere Tabelle), und die Tabelle dann sorteieren, was hoffentlich erheblich schneller geht, als die Komplette Suche zu sortieren.

IMHO wurden HEAP-Tabellen für eine hohe Performance erfunden. Also für Daten die man immer benötigt und Schlüßel für andere Tabellen sind. Indexe fallen mir da ein.

Was fpr Indexe? MySQL speichert die erzeugten Indexe doch selbst?

Da HEAP-Tabellen nur spalten mit fester Länge verwenden, sollte also selbst bei Texten die Performance stimmen.

Darauf hoffe ich!

Ich habe gerde auch nochwas gefunden,w as das ganze nochmal beschleunigen sollte:

Man kann in das CREATE TABLE Statement ein SELECT schreiben, womit ich 2 SQL-Abfragen  in einer zusammenfasse.

Grüße
Andreas