Как добавить комментарии к запросам mysql, чтобы они отображались в журналах? - PullRequest
8 голосов
/ 17 марта 2010

Я хочу иметь возможность добавлять небольшую заметку в начале каждого запроса, поэтому, когда я вижу его в списке процессов, или "mytop", я могу сказать, где он выполняется.

Возможно ли что-то подобное?

Ответы [ 2 ]

7 голосов
/ 17 марта 2010

Не уверен, что это сработает, но стоит попробовать.

Просто добавьте "/* some comment or tag */ " перед отправкой запроса SQL.

Возможно, что сервер mySQL удалит этот комментарий как часть своего анализа / подготовки запроса, но он также может просто оставить его, поэтому он отображается в журналах и других инструментах мониторинга.

В случае, если комментарии будут удалены и при условии выполнения запросов SELECT, небольшим изменением вышеприведенного будет добавление вычисляемого столбца в качестве первого элемента после SELECT, что-то вроде

SELECT IF('some comment/tag' = '', 1, 0) AS BogusMarker, here-start-the-original-select-list
-- or
SELECT 'some [short] comment/tag' AS QueryID, here-start-the-original-select-list

Этот подход имеет недостаток, заключающийся в добавлении дополнительного значения столбца для каждой строки результатов. Последняя форма фактически использует значение «comment / tag» в качестве этого значения, которое может быть полезно для целей отладки.

1 голос
/ 19 ноября 2014

обнаружил это сегодня:

mysql поддерживает странный синтаксис:

/*!<min-version> code here */

для встраивания кода, который будет интерпретироваться только mysql, и только mysql указанной минимальной версии.
это задокументировано здесь: http://dev.mysql.com/doc/refman/5.0/en/comments.html
(используется, например, mysqldump.)

такие комментарии не будут анализироваться и включаться в список процессов, в отличие от обычных, и даже в кодена самом деле не выполняется.

, поэтому вы можете сделать что-то вроде

/*!999999 comment goes here */ select foo from bla;

, чтобы иметь комментарий, который будет отображаться в списке процессов, но не изменять код.(до тех пор, пока разработчики mysql не решат раздуть свою версию выпуска и выпустить версию с номером более 99.99.99, в этом случае вам просто нужно будет добавить еще одну цифру.

...