Vor langer Zeit konnte man die folgende Methode verwenden um MySQL-Queries in der Applikation zu taggen:
SELECT /* My Application Tag */ * FROM test;
Im Slow Query Log und im General Query Log erschien die Abfrage dann so:
# Time: 111020 22:03:33 # User@Host: root[root] @ localhost [] Id: 1335 # Query_time: 17.873938 Lock_time: 0.007952 Rows_sent: 12048576 Rows_examined: 12048576 use test; SET timestamp=1319141013; SELECT /* My Application Tag */ * FROM test;
und
111020 22:03:15 1335 Query SELECT /* My Application Tag */ * FROM test
Leider wurde dieses Feature irgendwann einmal von MySQL abgeschafft. Heute unterdrückt die Datenbank die Kommentare im obigen Beispiel, sie tauchen im Log nicht mehr auf. Helfen kann man sich aber mit einer ansonsten wirkungslosen und immer wahren WHERE-Klausel:
SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag';
oder noch kürzer:
SELECT * from test WHERE "1 Application Tag";
(Hier erzwingt die vorangestellte 1 den Wahrheitswert true.)
Die Tags erscheinen nun genauso in den beiden Logs und erlauben es, die Query eindeutig zu identifizieren:
# Time: 111020 22:24:59 # User@Host: root[root] @ localhost [] Id: 2077 # Query_time: 12.270074 Lock_time: 0.000124 Rows_sent: 12048576 Rows_examined: 12048576 use test; SET timestamp=1319142299; SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag';
und
2077 Query SELECT * FROM test WHERE 'My Application Tag' = 'My Application Tag'