Как проверить ваши запросы MySQL? - PullRequest
7 голосов
/ 02 января 2012

Я разработал несколько запросов MySQL для своего приложения, создал индексы и также использовал операторы EXPLAIN.

  • Какие типы методов тестирования мы можем использовать для проверки запросов (тестирование производительности, нагрузочное тестирование, параллельное тестирование и другие)

  • Как использовать эти методы тестирования в вашей системе, все, что связано с тестированием запросов, полезно для меня.

Заранее спасибо.

1 Ответ

7 голосов
/ 02 января 2012

Тест с sysbench , это отличный инструмент для моделирования трафика базы данных. Кроме того, я бы посоветовал ознакомиться с оператором MySQL EXPLAIN , поскольку он помогает анализировать запрос и улучшать работу в медленных областях.

В Интернете довольно много статей, в которых объясняется, как правильно проводить тесты, вот только одна из них http://20bits.com/articles/10-tips-for-optimizing-mysql-queries-that-dont-suck/.

И последнее, но не менее важное: ничто не заменит тестирование на реальных данных. Теоретически, некоторые запросы должны обрабатываться лучше, чем другие, но единственный верный способ узнать это - проверить вашу схему на реальных данных. Существует удобный инструмент с именем generateata , который создает много фиктивных данных, чтобы вы могли выполнять указанные тесты.

Для правильного сравнения ваших запросов вы должны убедиться, что все кэшированные запросы и информация из базы данных стерты так, чтобы результаты были точными и независимыми друг от друга; Вы можете сделать это, выполнив RESET QUERY CACHE и FLUSH TABLES перед выполнением каждого запроса.

Дополнительная информация по запросу: Исходя из опыта, лучший способ справиться с параллелизмом - использовать оператор MySQL SET TRANSACTION для правильной изоляции ваших запросов. Используя механизм InnoDB, база данных будет выполнять блокировку строк, что часто достаточно для большинства приложений. Вы можете проверить это, выполнив эквивалентные задачи в базе данных, но с отдельными транзакциями. Параллелизм - это очень широкая тема в мире баз данных, и я настоятельно рекомендую продолжить изучение этой темы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...