Задавайте вопросы, мы ответим
Вы не зашли.
Приветствую, друзья!
Есть у меня сервер с относительно большим зоопарком из ~150 баз данных и 15к таблиц с которыми работают из кучи неподконтрольных мне мест. Как мне найти те из них, к которым нет обращений (в том числе select)? Гуглится только использование update_time в information_schema но это не то, ессно. Есть ли способ?
Неактивен
Наверное, включить на время general query log
Неактивен
ох, нелегкая это работа - из болота тащить бегемота.
Неактивен
rgbeast написал:
Наверное, включить на время general query log
Его же придется глазами разбирать? Или есть какая нибудь тулза, которая его сможет нормально структурировать?
Нет ли способа повесить какой нибудь глобальный триггер на все таблицы?
Отредактированно Shopen (01.03.2018 16:49:55)
Неактивен
Сначала нужно разобрать сам лог, а потом разобрать скрипты. Не думаю, что это кто-то автоматизировал.
Можно искать автоматом в тексте все названия таблиц, которые есть в базе, но есть вероятность ошибки особенно на скриптах вставки данных, если данные могут содержать названия таблиц.
Неактивен
А чем триггер поможет? Он ведь не сработает на select?
Но меня заинтересовала эта задача. Мне тоже хотелось бы знать как часто обращаться к таблицам пользователи.
Отредактированно klow (01.03.2018 16:57:37)
Неактивен
Можно смотреть access-time на файлах таблиц в файловой системе
Неактивен
А если ежедневно идет бекап?
Неактивен
klow написал:
А если ежедневно идет бекап?
Время бэкапа известно. Смотреть access-time. каждый день перед бэкапом.
Неактивен
rgbeast написал:
Можно смотреть access-time на файлах таблиц в файловой системе
Access-time обычно отключают, если требуется производительность. В моём случае по крайней мере он точно отключен админом.
К тому же это время может меняться не только изнутри mysql а по ряду других причин (в том числе и бэкапов), то есть как минимум это неточно
Отредактированно Shopen (01.03.2018 21:54:16)
Неактивен
klow написал:
А чем триггер поможет? Он ведь не сработает на select?
Но меня заинтересовала эта задача. Мне тоже хотелось бы знать как часто обращаться к таблицам пользователи.
Поэтому и написал "какой-нибудь", странно что такого типа триггера даже не задумано. Видимо никому не нужен ))
Неактивен
Access-time можно включить, это не приведет к значительной потере производительности. Другие обращения к файлам можно отследить.
Неактивен
Про InnoDB известно, что он может в фоне писать-читать какие-то данные даже когда непосредственного обращения нету. Я допускаю, что, когда к таблице нету доступа это будут и правда очень редкие события, так что access time может быть ок.
Честный способ анализа запросов хорош, но сложен, кажется. А на performance schema смотрел?
https://dev.mysql.com/doc/refman/5.7/en … ables.html
https://dev.mysql.com/doc/refman/5.7/en … able-table
Неактивен