Як можна штучно створити повільний запит у mysql?


16

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

Я намагався отримати наступні запити в журналі повільних запитів:

Встановіть час повільного запиту на 1 секунду.

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

Підкреслили систему:

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

Сценарій деяких базових дзвінків на веб-сторінці за допомогою wget.

Нічого з цього не генерувало повільних запитів. Чи є інший спосіб штучного напруження бази даних для створення проблем? У мене недостатньо навичок, щоб написати складний Jmeter або інший генератор навантажень. Я сподіваюся, можливо, на щось вбудоване в mysql або інший фокус Linux поза стресом.


1
+1 За запитання отримати повільні запити. Якби це було саме так у реальних випадках: D
червоний

Відповіді:


5

Оформити замовлення mysqlslap . Ви можете передати один із ваших запитів на веб-сайті за допомогою --query та вказати одночасних клієнтів із --concurrency.


Це найкраще працювало ... використовуючи це та комбінацію де-налаштування бази даних.
Сіра гонка

35

Повністю штучний, але ви можете використовувати 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);

Дякуємо за пропозицію ... Це робить журнал зростати, але я хотів би, щоб вони були законними запитами для програми. Таким чином я можу демонструвати пояснення та інші інструменти діагностики.
Сіра гонка

:) Гм ... може стратегічний LOCK TABLESспрацює. Це теж може бути занадто химерним.
Марк Вагнер

1
Зазвичай вибирайте * з ((виберіть * з бази даних) х) і продовжуйте отримувати все більше і більше набірливих дій для мене.
alexyorke

Використовуйте, DO SLEEP(10);якщо ви не хочете, щоб результат SLEEP у вашому запиті.
Rasmus Friis Kjeldsen

1

Можливо, деінсталяція бази даних може допомогти? Наприклад, зменшення розміру key_buffers?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.