Низкоприоритетные обновления MySQL с использованием JDBC - как проверить, работают ли они

у меня есть базовая настройка, при которой база данных читается несколькими веб-приложениями, и периодически у меня есть пакетное приложение, которое много пишет. Во время написания производительность веб-приложений сильно ухудшается (чтение их базы данных происходит очень медленно).

Окр. MySQL db, использующий механизм MYISAM, пакетное приложение - это приложение Java SE, использующее spring -batch и SimpleJDBCTemplate для выдачи команд SQL через JDBC. Я обнаружил, что в MySQL есть параметр, который снижает приоритет операций записи в движке MYISAM: low_priority_updates . Чтобы процитировать документы, среди прочего, вы можете «SET LOW_PRIORITY_UPDATES = 1, чтобы изменить приоритет в одном потоке». Я выбрал это, потому что это проще всего с точки зрения конфигурации моего приложения. Я сконфигурировал свой источник данных таким образом, чтобы он выполнял команду «SET ...» для каждого открываемого соединения, например так:


        
        
            
                SET low_priority_updates="ON"
            
        
    

Теперь мой вопрос: как мне на самом деле проверить, что SQL, выданный через этот источник данных, выполняет на самом деле работать с низким приоритетом? Если я сделаю SHOW FULL PROCESSLIST в MySQL во время вставки, он просто скажет мне, какой SQL они выполняют, ничего о приоритете:

enter image description here

Если я проверю, что серверные переменные low_priority_updates выключены, но это просто переменная сервера, она ничего не говорит о локальном значении потока.

Итак, есть ли какой-либо реальный способ проверить, учитываются ли значения low_priority_updates для каждого запроса / потока?

6
задан skaffman 7 November 2011 в 16:45
поделиться