Назад | Перейти на главную страницу

Как можно искусственно создать медленный запрос в mysql?

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

Я пробовал следующее, чтобы получать запросы в журнале медленных запросов:

Установите время медленного запроса на 1 секунду.

Удалено несколько индексов.

Подчеркнул систему:

stress --cpu 100 --io 100 --vm 2 --vm-bytes 128M --timeout 1m

Написал сценарии для некоторых основных вызовов веб-страниц с помощью wget.

Ничто из этого не привело к медленным запросам. Есть ли другой способ искусственно нагружать базу данных для создания проблем? У меня недостаточно навыков, чтобы написать сложный Jmeter или другой генератор нагрузки. Я надеюсь, что, возможно, что-то встроено в mysql или какой-нибудь другой трюк с Linux, не вызывающий стресса.

Полностью искусственный, но вы можете использовать sleep() функция:

select sleep(10);

В журнале:

Time                 Id Command    Argument
# Time: 110629 16:19:13
# User@Host: mysql[mysql] @ localhost []
# Query_time: 10.000218  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1309389553;
select sleep(10);

Проверять, выписываться mysqlslap. Вы можете передать один из запросов своего веб-приложения с помощью --query и указать одновременных клиентов с помощью --concurrency.

Возможно, вам может помочь изменение настройки базы данных? Например, уменьшение размера key_buffers?