Tabellen als Zwischenspeicher
Hallo,
mir geht es hier nicht um die Lösung eines Problems, sondern um die vorteilhafte Nutzung der internen MySql-Programmstruktur, von der ich leider keine Ahnung habe. Ich verwende häufig Tabellen als Zwischenspeicher für die Ergebnisse von SELECT-Anweisungen (auch wenn Tabellen-Joins vielleicht hier und da eleganter sind). Temporäre Tabellen verwende ich nicht, da ich die Zwischenergebnisse gelegentlich auch für Kontrollzwecke benötige. Für die Erstellung der Zwischentabellen (mit gleichbleibenden Spaltenköpfen) gibt es nun zwei Möglichkeiten: [a] DROP TABLE IF EXISTS tabelle; CREATE TABLE tabelle SELECT ...; [b] TRUNCATE TABLE tabelle; INSERT INTO tabelle SELECT ...; Bei [b] wird die vorhandene Tabelle ständig geschrumpft und erweitert. Ich kann mir denken, dass dabei "Speicherlöcher" entstehen. Trotzdem verwende ich bisher problemlos diese Methode, weil dann die Spalten schon die von mir gewünschten Datentypen haben. (Das ließe sich aber auch bei [a] durch vorgeschaltete CREATE TABLE Anweisungen erreichen.) Ich überarbeite gerade meine Datenbank, deshalb die Frage: Welche Methode ist aus Sicht der internen MySQL-Daten- und -Programmstruktur die optimalere, oder ist das vollkommen egal? |
AW: Tabellen als Zwischenspeicher
möchte den datenbank-profies hier nicht vorweg greifen, aber: effizient sind ganz sicher beide methoden nicht.
Zitat:
Zitat:
Zitat:
Zitat:
cx |
AW: Tabellen als Zwischenspeicher
Hallo cortex,
besten Dank für die Antwort. Ich habe mir schon gedacht, dass es in diese Richtung hinausläuft. Dann muss ich mich wohl doch mit komplexeren Joins und der Lebensdauer temporärer Tabellen genauer befassen, auch wenn sich dabei Frustration wohl nicht vermeiden läst. |
AW: Tabellen als Zwischenspeicher
hallo alea,
so schlimm sind joins nicht... guter grundlagen-artikel: http://aktuell.de.selfhtml.org/artik...oins/index.htm fortgeschrittene techniken: http://aktuell.de.selfhtml.org/artik...tm#einfuehrung und wenn's gar nicht mehr weitergeht... (hier) nachfragen .- cx |
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:32:23 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.