5 Minuten Tipps: MySQL Befehle

Willkommen zur Lern-Kaffeepause, heute mit MySQL Befehlen! Ich mag es, auf der MySQL Konsole zu arbeiten. Sie ist überall verfügbar und Tastatur schlägt Maus sobald man die richtigen Befehle und Kürzel kennt. Aber es steckt mehr darin als nur Queries einzugeben. Heute teile ich ein paar Tipps, um Eure Produktivität mit der MySQL Konsole zu steigern:

  • Einmal schnell etwas auf der Shell ausführen ohne die Konsole zu verlassen? Das geht mit dem system Befehl:
    system rm -rf var/cache/*
  • Einen Datensatz mit vielen Spalten zu betrachten ist unübersichtlich? Man kann das Ergebnis vertikal darstellen, indem man den Query mit \G anstatt mit ; abschließt

    SELECT * FROM sales_flat_order WHERE entity_id=42\G
  • Mit dem pager Befehl könnt Ihr beliebige Shell Befehle spezifizieren, die die Ausgabe der folgenden Queries als Eingabe erhalten. pager ohne Parameter, oder nopager setzt den Standardwert STDOUT zurück.
    Beispiele:

    • Fast immer nützlich: Durch große Ergebnisse scrollen und darin suchen:
      pager less
    • Eine Prüfsumme des Ergebnisses berechnen, nützlich um Ergebnisse auf Gleichheit zu prüfen:
      pager md5sum
    • Ergebnisse mit regulärem Ausdruck “PATTERN” filtern, nützlich wenn man Inhalte über mehrere Spalten hinweg sucht:
      pager grep PATTERN

Vertikale Ergebnisse mit “pager grep” zu kombinieren ist auch nützlich, wenn man nur Spalten anzeigen möchte, die einem bestimmten Muster entsprechen:


Neben diesen Befehlen, möchte ich auch noch einige allgemeine DDL Queries teilen, die ich ständig benutze:

  • Ihr sucht eine Tabelle aber könnt euch nicht an den genauen Namen erinnern? Zeige alle Tabellen, mit “index” im Namen:
    SHOW TABLES LIKE '%index%';
  • Und wie sahen die Spalten noch mal aus? Zeige die Spaltendefinitionen für die catalog_product_index_price Tabelle:
    DESCRIBE catalog_product_index_price;
  • Mehr Infos über die Tabelle? Constraints, Engine, Charset? Bitte sehr:
    SHOW CREATE TABLE catalog_product_index_price;

Und nicht vergessen, kin Magento kann man die Konsole direkt mit

n98-magerun db:console

bzw.

n98-magerun2 db:console

öffnen (Ihr nutzt magerun, oder?)