|
|
|
MySQL Ведение лога запросов только одной базы данных
|
|||
|---|---|---|---|
|
#18+
Всем привет. Включил логирование медленных запросов и запросов без индексов. Файл my.cnf [mysqld] log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 2 log-queries-not-using-indexes Проблема в том, что логирование происходит всех баз данных. Как сделать только одной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2016, 19:43:44 |
|
||
|
MySQL Ведение лога запросов только одной базы данных
|
|||
|---|---|---|---|
|
#18+
Проблема в чём-то другом. Дело в том, что log_slow_queries включает логгирование медленных ЗАПРОСОВ безотносительно того, к каким БД они выполняются (один запрос вполне может работать с несколькими БД). Максимум, что можете найти в логе - это пользователь, от имени которого был выполнен запрос. Пользователь тоже может иметь доступ к множеству баз, имена которых в логе специально никак не отмечается. Конечно, если только имя базы не было явно указано в запросе. Как отфильтровать нужное. Варианты (по мере неприемлемости): - найти глазами и руками нужные запросы в относительно небольшом выводе утилиты mysqldumpslow (если они не где-то на первых страницах вывода - то и не представляют большой проблемы, скорее всего). - написать скрипт, который будет сопоставлять имя БД с именем пользователя и выдёргивать из общего лога нужное в отдельный файл. - запустить исследуемую БД на отдельном сервере или в отдельном инстансе mysql (где нет других баз) и писать отдельный лог. - можно ещё закрыть доступ к базам, логгировать которые не нужно, или удалить их, но этот вариант не подойдёт скорее всего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2016, 20:29:50 |
|
||
|
MySQL Ведение лога запросов только одной базы данных
|
|||
|---|---|---|---|
|
#18+
vkle, Т.е. вы говорите, что в настройках my.cnf нельзя указать базу данных? Нашел такую утилиту mysqldumpslow . # В составе MySQL есть утилита mysqldumpslow — Perl-скрипт, который суммирует данные лога, и наглядно отображает, # насколько часто исполняется каждый из медленных запросов. Это ее хелп. mysqldumpslow --help Usage: mysqldumpslow [ OPTS... ] [ LOGS... ] Parse and summarize the MySQL slow query log. Options are --verbose verbose --debug debug --help write this text to standard output -v verbose -d debug -s ORDER what to sort by (al, at, ar, c, l, r, t), 'at' is default al: average lock time ar: average rows sent at: average query time c: count l: lock time r: rows sent t: query time -r reverse the sort order (largest last instead of first) -t NUM just show the top n queries -a don't abstract all numbers to N and strings to 'S' -n NUM abstract numbers with at least n digits within names -g PATTERN grep: only consider stmts that include this string -h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard), default is '*', i.e. match all -i NAME name of server instance (if using mysql.server startup script) -l don't subtract lock time from total time Вот эта строка. -h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard), default is '*', i.e. match all Вроде говорит, что можно как то указать базу данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2016, 21:38:15 |
|
||
|
MySQL Ведение лога запросов только одной базы данных
|
|||
|---|---|---|---|
|
#18+
_Alex_FoxВот эта строка. -h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard), default is '*', i.e. match all Вроде говорит, что можно как то указать базу данных.Нет, hostname - это имя хоста, а не имя базы данных. Как вариант, можно попробовать лог писать в таблицу , а не в файл. Возможно, там удастся отделить запросы к разным базам. Правда, у меня сейчас нет на чем попробовать. Кстати, а как быть с запросами, которые используют таблицы из разных баз? Их как учитывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2016, 03:15:51 |
|
||
|
MySQL Ведение лога запросов только одной базы данных
|
|||
|---|---|---|---|
|
#18+
Записывайте все, но обрабатывайте потом программой pt-query-digest. Она вам в любом случае нужна, но кроме того в ней есть ключики чтобы выбрать запросы из конкретного контекста (надо понимать, что запросы могут быть и из нескольких схем сразу) Вот тратить время на log-queries-not-using-indexes не очень практично. Лучше пока это убрать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2016, 13:35:16 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39141660&tid=1832318]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
215ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 531ms |

| 0 / 0 |
