Какие файлы в моем приложении делают медленные записи в журнале запросов Mysql - PullRequest
0 голосов
/ 01 июня 2019

Я 2 дня боролся за эту проблему и не нашел решения.

Я регистрирую MySQL медленный запрос с периодом 10 секунд.В файле журнала есть огромные записи с этим утверждением:

# Thread_id: 222244  Schema: user  QC_hit: No
# Query_time: 51.019708  Lock_time: 0.000119  Rows_sent: 1  Rows_examined: 13295012
# Rows_affected: 0
SET timestamp=1559388099;
SELECT (COUNT(*)) AS `count` 
FROM statistics Statistics WHERE (id >= 1 AND ad_type <> 3);

, что связано с ростом числа запросов apache.Время запроса до одной минуты или более завершено и приводит к перегрузке моего сервера.Проблема в том, что я не могу найти какой файл в моем php-скрипте, который вызывает медленные запросы.

Есть ли какая-либо командная строка для поиска соответствующего файла.Или любым быстрым способом?

CREATE TABLE statistics` (
    id bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
    ... , 
    PRIMARY KEY (id), 
    KEY idx_uid (uid), 
    KEY idx_ip (ip), 
    KEY idx_cnid_uid (cid,uid), 
    KEY idx_rlid (rid), 
    KEY idx_created_uid (created,uid)
) ENGINE=InnoDB AUTO_INCREMENT=34015 DEFAULT CHARSET=utf8

1 Ответ

1 голос
/ 02 июня 2019

Если нет причины для проверки id >= 1, избавьтесь от нее - это препятствует определенной оптимизации.

Затем добавьте INDEX(ad_type)

Тем не менее, я не вижу веской причины для COUNT(*) в таблице с 34K-строками (?), Чтобы она заняла 51 секунду. Должно быть что-то еще.

...