SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 14.01.2014 19:04:47

Mistofash
Участник
Зарегистрирован: 14.01.2014
Сообщений: 5

Проблема с MySQL-сервером

Здравствуйте. У меня собсна такая проблема. Очень сильно грузится MySQL сервер в 746мс,а допустимая нагрузка в 500мс. Обращался в ТП хостинга и мне сказали что тут проблему надо выявлять.

Нагрузка создается из-за базы данных p220403_ms. Ниже лог медленных запросов для данной базы за 13-ое января:

# 346.9s user time, 1.6s system time, 25.91M rss, 204.78M vsz
# Current date: Tue Jan 14 17:29:37 2014
# Hostname: mysql3.ihc.ru
# Files: /var/log/mysql-slow.log-20140113
# Overall: 20.13k total, 5 unique, 0.23 QPS, 0.00x concurrency ___________
# Time range: 2014-01-12 04:02:14 to 2014-01-13 04:01:11
# Attribute          total     min     max     avg     95%  stddev  median
# ============     ======= ======= ======= ======= ======= ======= =======
# Exec time           338s    11ms      4s    17ms    24ms    29ms    15ms
# Lock time             3s    28us   156ms   138us   273us     2ms    49us
# Rows sent         53.06k       1  22.49k    2.70    0.99  179.79    0.99
# Rows examine     458.16M  10.91k  25.91k  23.30k  24.75k   1.63k  22.45k
# Rows affecte           0       0       0       0       0       0       0
# Rows read        458.16M  10.91k  25.91k  23.30k  24.75k   1.63k  22.45k
# Bytes sent         4.82M      63   2.57M  250.89   62.76  19.33k   62.76
# Query size         2.52M      35     145  131.07  143.84   15.55  136.99

# Profile
# Rank Query ID           Response time  Calls R/Call V/M   Item
# ==== ================== ============== ===== ====== ===== ============
#    1 0xCD10F1D1CAFD0606 184.5246 54.5%  9996 0.0185  0.01 SELECT mslog
#    2 0x950D6DAAA8C3F01F 147.0323 43.5%  9996 0.0147  0.00 SELECT mslog
# MISC 0xMISC               6.7757  2.0%   142 0.0477   0.0 <3 ITEMS>

# Query 1: 0.12 QPS, 0.00x concurrency, ID 0xCD10F1D1CAFD0606 at byte 721979883
# This item is included in the report because it matches --limit.
# Scores: V/M = 0.01
# Time range: 2014-01-12 04:02:14 to 2014-01-13 04:01:11
# Attribute    pct   total     min     max     avg     95%  stddev  median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count         49    9996
# Exec time     54    185s    11ms   728ms    18ms    26ms    11ms    16ms
# Lock time     31   877ms    35us    53ms    87us   125us   586us    54us
# Rows sent     18   9.76k       1       1       1       1       0       1
# Rows examine  49 227.41M  21.21k  25.91k  23.30k  24.75k   1.62k  22.45k
# Rows affecte   0       0       0       0       0       0       0       0
# Rows read     49 227.41M  21.21k  25.91k  23.30k  24.75k   1.62k  22.45k
# Bytes sent    12 618.57k      63      64   63.37   62.76    0.00   62.76
# Query size    54   1.38M     145     145     145     145       0     145
# String:
# Databases    p220403_ms
# Hosts
# Last errno   0
# Users        p220403_ms
# Query_time distribution
#   1us
#  10us
# 100us
#   1ms
#  10ms  ################################################################
# 100ms  #
#    1s
#  10s+
# Tables
#    SHOW TABLE STATUS FROM `p220403_ms` LIKE 'mslog'\G
#    SHOW CREATE TABLE `p220403_ms`.`mslog`\G
# EXPLAIN /*!50100 PARTITIONS*/
SELECT COUNT(DISTINCT CONCAT(`ip`,':',`port`)) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G

# Query 2: 0.12 QPS, 0.00x concurrency, ID 0x950D6DAAA8C3F01F at byte 471036241
# This item is included in the report because it matches --limit.
# Scores: V/M = 0.00
# Time range: 2014-01-12 04:02:14 to 2014-01-13 04:01:11
# Attribute    pct   total     min     max     avg     95%  stddev  median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count         49    9996
# Exec time     43    147s    11ms   426ms    15ms    19ms     8ms    14ms
# Lock time     63      2s    28us   156ms   177us   490us     2ms    42us
# Rows sent     18   9.76k       1       1       1       1       0       1
# Rows examine  49 227.41M  21.21k  25.91k  23.30k  24.75k   1.62k  22.45k
# Rows affecte   0       0       0       0       0       0       0       0
# Rows read     49 227.41M  21.21k  25.91k  23.30k  24.75k   1.62k  22.45k
# Bytes sent    12 621.56k      63      64   63.67   62.76    0.00   62.76
# Query size    44   1.12M     117     117     117     117       0     117
# String:
# Databases    p220403_ms
# Hosts
# Last errno   0
# Users        p220403_ms
# Query_time distribution
#   1us
#  10us
# 100us
#   1ms
#  10ms  ################################################################
# 100ms  #
#    1s
#  10s+
# Tables
#    SHOW TABLE STATUS FROM `p220403_ms` LIKE 'mslog'\G
#    SHOW CREATE TABLE `p220403_ms`.`mslog`\G
# EXPLAIN /*!50100 PARTITIONS*/
SELECT COUNT(`ip`) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G

Помогите пожалуйста.

Неактивен

 

#2 14.01.2014 19:19:02

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Проблема с MySQL-сервером

Раз Вы храните год, месяц и день раздельно (почему бы не хранить это все в одном поле типа date?), то именно эти запросы

Код:

SELECT COUNT(DISTINCT CONCAT(`ip`,':',`port`)) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G

SELECT COUNT(`ip`) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G

если мыслить, так сказать, в лоб, должен ускорить составной индекс
(`timeyear`,`timemonth`,`timeday`,`type`)

ALTER TABLE `mslog` ADD INDEX (`timeyear`,`timemonth`,`timeday`,`type`);


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 14.01.2014 19:26:02

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Проблема с MySQL-сервером

Ещё покажите структуру таблицы и план запросов, т.е.

SHOW CREATE TABLE `p220403_ms`.`mslog`\G
explain SELECT COUNT(DISTINCT CONCAT(`ip`,':',`port`)) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G

explain SELECT COUNT(`ip`) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G


P.S. А кто знает что такое us?
# Lock time     31   877ms    35us    53ms    87us   125us   586us    54us

Неактивен

 

#4 14.01.2014 19:35:24

Mistofash
Участник
Зарегистрирован: 14.01.2014
Сообщений: 5

Re: Проблема с MySQL-сервером

deadka написал:

Раз Вы храните год, месяц и день раздельно (почему бы не хранить это все в одном поле типа date?), то именно эти запросы

Код:

SELECT COUNT(DISTINCT CONCAT(`ip`,':',`port`)) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G

SELECT COUNT(`ip`) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G

если мыслить, так сказать, в лоб, должен ускорить составной индекс
(`timeyear`,`timemonth`,`timeday`,`type`)

ALTER TABLE `mslog` ADD INDEX (`timeyear`,`timemonth`,`timeday`,`type`);

т.е как я понял создать поле и запихнуть туда дату, время?

Неактивен

 

#5 14.01.2014 19:50:16

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Проблема с MySQL-сервером

Нет, посмотрите FAQ №5

И приведите результаты команд из поста http://sqlinfo.ru/forum/viewtopic.php?pid=38722#p38722 иначе будем гадать на кофейной гуще.

Неактивен

 

#6 14.01.2014 19:50:20

Mistofash
Участник
Зарегистрирован: 14.01.2014
Сообщений: 5

Re: Проблема с MySQL-сервером

vasya написал:

Ещё покажите структуру таблицы и план запросов, т.е.

SHOW CREATE TABLE `p220403_ms`.`mslog`\G
explain SELECT COUNT(DISTINCT CONCAT(`ip`,':',`port`)) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G

explain SELECT COUNT(`ip`) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G


P.S. А кто знает что такое us?
# Lock time     31   877ms    35us    53ms    87us   125us   586us    54us


Прикрепленные файлы:
Attachment Icon bandicam 2014-01-14 21-47-07-250.jpg, Размер: 132,074 байт, Скачано: 324

Неактивен

 

#7 14.01.2014 19:50:58

Mistofash
Участник
Зарегистрирован: 14.01.2014
Сообщений: 5

Re: Проблема с MySQL-сервером

вот ещё


Прикрепленные файлы:
Attachment Icon bandicam 2014-01-14 21-47-15-562.jpg, Размер: 37,276 байт, Скачано: 353

Неактивен

 

#8 14.01.2014 19:58:27

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Проблема с MySQL-сервером

Жесть какая. Отчего у вас все поля текстовые?

И все-таки, выполните указанные мной запросы и покажите их результат (если возможно, то в текстовом виде).

Неактивен

 

#9 17.01.2014 00:59:47

Mistofash
Участник
Зарегистрирован: 14.01.2014
Сообщений: 5

Re: Проблема с MySQL-сервером

vasya написал:

И все-таки, выполните указанные мной запросы и покажите их результат (если возможно, то в текстовом виде).

Я не особо силен в этой сфере. Подскажите пожалуйста,что нужно сделать?

Неактивен

 

#10 17.01.2014 01:04:42

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Проблема с MySQL-сервером

Ну, вы как-то делаете запросы к базе? Судя по скрину у вашего клиента есть вкладка, на которой можно выполнять sql запросы к базе. Нужно выполнить 3 запроса и показать здесь результат их выполнения (можно в виде скрина, если не получается в текстовом)

SHOW CREATE TABLE `p220403_ms`.`mslog`\G

explain SELECT COUNT(DISTINCT CONCAT(`ip`,':',`port`)) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G

explain SELECT COUNT(`ip`) AS `unique` FROM `mslog` WHERE timeyear = 2014 and timemonth = 01 and timeday = 12 and type = 'cs'\G

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson