|  |   | 
Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте. У меня собсна такая проблема. Очень сильно грузится 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
Помогите пожалуйста.
Неактивен

Раз Вы храните год, месяц и день раздельно (почему бы не хранить это все в одном поле типа 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`);
Неактивен

Ещё покажите структуру таблицы и план запросов, т.е. 
Неактивен
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`);
т.е как я понял создать поле и запихнуть туда дату, время?
Неактивен

Нет, посмотрите FAQ №5
И приведите результаты команд из поста http://sqlinfo.ru/forum/viewtopic.php?pid=38722#p38722 иначе будем гадать на кофейной гуще.
Неактивен
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
Неактивен
вот ещё
Неактивен

Жесть какая. Отчего у вас все поля текстовые?
И все-таки, выполните указанные мной запросы и покажите их результат (если возможно, то в текстовом виде).
Неактивен
vasya написал:
И все-таки, выполните указанные мной запросы и покажите их результат (если возможно, то в текстовом виде).
Я не особо силен в этой сфере. Подскажите пожалуйста,что нужно сделать?
Неактивен

Ну, вы как-то делаете запросы к базе? Судя по скрину у вашего клиента есть вкладка, на которой можно выполнять 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
Неактивен