Как узнать, какой запрос MySQL потребляет больше ресурсов процессора? - PullRequest
0 голосов
/ 21 октября 2019

Я использую VPS-сервер, ресурсы процессора всегда показывают 99%, как узнать, какой запрос MySQL потребляет больше ресурсов процессора.

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Сначала всего, что вы должны ssh на сервер Затем, чтобы проверить запросы высокой обработки:

Соединение mysql -u root -p Тип SHOW PROCESSLIST; Вы также можете использовать SHOW FULL PROCESSLIST, чтобы увидетьполные запросы.

Это покажет все запросы, запущенные в это время.

Секунда: Вы должны включить Журнал медленных запросов и проверить его. Убедитесь, что у вас нет запросов, блокирующих таблицы ключей слишком долго.

Третье: Вам следует проверить пользователей mysql и убедиться, что никто не обращается к нему удаленно.

Последнее: Включить стандартный профилировщик magento и исследовать медленные процессы. Чтобы включить его, перейдите по адресу:

System > Configuration > Advanced > Developer > Debug > Profiler > Yes

Затем откройте корневой index.php файл вашей установки Magento, найдите закомментированную Varien_Profiler::enable(); деталь и раскомментируйте ее.

Если вы хотите включить профилирование sql, добавьте <profiler>true</profiler> к app/etc/local.xml

Пример:

<resources>
 <db>
  <table_prefix><![CDATA[]]></table_prefix>
 </db>
 <default_setup>
  <connection>
   <host><![CDATA[localhost]]></host>
   <username><![CDATA[root]]></username>
   <password><![CDATA[]]></password>
   <dbname><![CDATA[magento_1_8_1_0]]></dbname>
   <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
   <model><![CDATA[mysql4]]></model>
   <type><![CDATA[pdo_mysql]]></type>
   <pdoType><![CDATA[]]></pdoType>
   <active>1</active>
   <profiler>true</profiler>
  </connection>
 </default_setup>
</resources>

Вы можете даже профилировать отдельные коды, добавив

//First, enable the profiler
Varien_Profiler::enable();

//Second, start the profiler with a unique label

Varien_Profiler::start('LabelForCodeFragmentToProfile');

///... here some code we like to get statistics for

//next, stop your profiler with the same label
Varien_Profiler::stop('LabelForCodeFragmentToProfile');

//Last, disable your profiler
Varien_Profiler::disable();
0 голосов
/ 21 октября 2019

Пожалуйста, обратитесь ниже url

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/33c7521f-7ed4-4574-82dd-aeb2f32111c5/find-high-cpu-query?forum=sqldatabaseengine

Я считаю, что это должно решить ваш запрос.

...