Я использую Mysql Server 5.6.15, и у меня огромная база данных со множеством сложных запросов.
кажется, что когда я запускаю запрос в первый раз, это занимает X времени.
когда я выполняю его снова, это занимает меньше X времени. что означает, что что-то было кэшировано.
Я хочу иметь возможность тестировать свои запросы на производительность, чтобы улучшить их с точки зрения кеширования.
есть ли способ отключить все типы кеширования в mysql, чтобы я мог правильно проверить время выполнения моих запросов?
любая информация по этому поводу будет принята с благодарностью.
На самом деле вам нужно, чтобы пропуски кэша запросов были близки к 100%. Думаю, у меня есть то, что я ищу. 9 июля 2011 года я ответил на этот пост в DBA StackExchange: Тестирование скорости запроса.
Вот этот ответ:
Вы можете создать среду стресс-тестирования, чтобы результаты запроса отображались как можно в реальном времени. Например, буфер ключей MyISAM (размер регулируется key_buffer_size) по умолчанию составляет 8 МБ, а минимальное значение - 8 (правильно, 8 байтов). Он отвечает за хранение индексных страниц из файлов .MYI. Установите это значение на 8, и каждый поиск по ключу в MyISAM должен читаться снова и снова.
Это также будет работать в принципе с InnoDB. Размер пула буферов InnoDB по умолчанию (регулируется innodb_buffer_pool_size) составляет 128 МБ, а минимальный - 1 МБ (в MySQL 5.5). Он отвечает за хранение данных и страниц индекса из файлов .ibd и / или ibdata1. Установите это значение в 1M и каждый поиск по ключу в InnoDB (который всегда включает дополнительный поиск в кластеризованном индексе строки (gen_clust_index)) надо читать снова и снова.
Для дополнительного стресса установите для query_cache_type значение 0, чтобы запросы не кэшировались.
Просто добавьте эти три (3) минимальных значения в /etc/my.cnf
[mysqld] innodb_buffer_pool_size=1M key_buffer_size=8 query_cache_type=0
и перезапустите MySQL.
Это должно обеспечить выполнение всех запросов с минимальным лучшим (или худшим) результатом каждый раз.
Попробуйте !!!
Ну, не сиди и пялишь на монитор ...