Archiv

Artikel getaggt mit ‘mysql’

Zugriff auf einen frisch installierten MySQL Server

 

Schon x-Mal gemacht und trotzdem wieder vergessen. Wenn man einen MySQL Server frisch installiert und man ohne Umwege von Außen auf die Datenbanken zugreifen möchte, dann muss man die Konfigurationsdatei ‘my.cnf’ an der folgenden Stelle anpassen.

 
 

bind-address = 127.0.0.1

Eine mögliche Konfiguration ohne Beschränkung der Adressen der anfragenden Clients ist diese.

bind-address = 0.0.0.0

Unter Ubuntu Linux ist die Konfigurationsdatei unter ‘/etc/mysql/my.cnf’ zu finden.

Kategorien:Informatik Schlagworte: ,

MySQL – Unterabfragen vs. temporäre Tabellen

Juni 7, 2009 4 Kommentare

Bei der Erstellung von Datenbankabfragen mit SQL kommt man bei der Auswertung vieler Daten sellten mit einer einfachen Abfrage aus. Oft benötigt man eine Ausgabemenge, welche als Argumente einer weiteren Abfrage dienen soll. Für diese Zwecke eignen sich verschachtelte Abfragen die aufeinander aufbauen und mit einem Mal die gewünschte Ausgabe erzeugen können.

Leider reicht nicht immer die Leistung des Datenbankservers für eine komplexe Unterabfrage aus und man wartet ewig auf seine Ausgabemenge. Der Grund für dieses Problem liegt auf der Hand. Durch die aufeinander aufbauenden Abfragen wird viel Arbeitsspeicher benötigt. Reicht der Speicher für die Komplexität nicht aus, ist der Server momentan überlastet oder ist er nicht optimal konfiguriert, wird die Abarbeitung deutlich ausgebremst.

Um die Ressourcen des Server zu schonen kann man temporäre Tabellen anlegen und die Ausgabemenge einer einzelnen Abfrage vorübergehend in dieser Tabelle speichern. Diese Logik kann auf eine beliebig komplexe Unterabfrage angewendet werden, wobei der Datenbankserver immer nur mit der Abarbeitung einer einelnen Abfrage belastet wird.

Um sich die Erzeugung dieser temporären Tabellen durch DDL Statements zu sparen, kann man es MySQL überlassen den richtigen Aufbau der Tabelle zu wählen. Hierzu verbindet man eine CREATE- mit einer SELECT-Anweisung.

Hier ein Beispiel:

CREATE TABLE temptablename1 SELECT * FROM
  tablename1 i WHERE ...;

CREATE TABLE temptablename2 SELECT * FROM
  temptablename1 i, tablename1 j WHERE ...;

SELECT * FROM tablename1 i WHERE 1 <=
  (SELECT COUNT(*) FROM temptablename2 u WHERE u.attribute1=i.attribute1);
Kategorien:Informatik Schlagworte: ,

Bash, MySQL – SQL Statements aus Datei laden und Ausgabe in Datei speichern.

mysql -uDB_USER -pDB_PASSWD DB_DATABASE < SQL_STATEMENTS > OUTPUT_FILE
Kategorien:Informatik Schlagworte: , , ,
Follow

Bekomme jeden neuen Artikel in deinen Posteingang.