Перейти к содержанию
Официальный форум поддержки Simpla

Слишком большая нагрузка на MySQL


Рекомендуемые сообщения

Здравствуйте. Есть парочку интернет-магазинов, которые размещаются на одном хостинге, но на разных заказах. Так вот один из них генерируют уж слишком большую нагрузку на базу данных. При этом фильтров, свойств и тп на сайте нету. Хостер прислал логи, но я в них к сожалению ничего не понимаю, кто может подсказать? 

 

Andrew Bratanchuk

Добавлено: 24.02.2015 12:14
Здравствуйте.

Нагрузку создают запросы к Вашей базе данных p296100_tehnovse. 
Лог медленных запросов прилагаю ниже: 

# Query 1: 0.00 QPS, 0.04x concurrency, ID 0x15EAC4F3BFCF64C6 at byte 1500182241
# This item is included in the report because it matches --limit.
# Scores: V/M = 1.00
# Time range: 2015-02-22 04:03:49 to 2015-02-23 03:53:29
# Attribute pct total min max avg 95% stddev median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count 0 109
# Exec time 7 3219s 26s 50s 30s 40s 5s 26s
# Lock time 0 1s 175us 448ms 9ms 8ms 48ms 1ms
# Rows sent 0 320.84k 194 3.68k 2.94k 3.52k 1.36k 3.52k
# Rows examine 17 2.83G 26.61M 26.62M 26.62M 25.91M 0 25.91M
# Rows affecte 0 0 0 0 0 0 0 0
# Rows read 17 2.83G 26.61M 26.62M 26.62M 25.91M 0 25.91M
# Bytes sent 0 147.96M 16.00k 1.72M 1.36M 1.69M 697.61k 1.69M
# Query size 0 69.72k 655 655 655 655 0 655
# String:
# Databases p296100_tehnovse
# Hosts
# Last errno 0 (86/78%), 1160 (23/21%)
# Users p296100_tehnovse
# Query_time distribution
# 1us
# 10us
# 100us
# 1ms
# 10ms
# 100ms
# 1s
# 10s+ ################################################################
# Tables
# SHOW TABLE STATUS FROM `p296100_tehnovse` LIKE 's_variants'\G
# SHOW CREATE TABLE `p296100_tehnovse`.`s_variants`\G
# SHOW TABLE STATUS FROM `p296100_tehnovse` LIKE 's_products'\G
# SHOW CREATE TABLE `p296100_tehnovse`.`s_products`\G
# SHOW TABLE STATUS FROM `p296100_tehnovse` LIKE 's_products_categories'\G
# SHOW CREATE TABLE `p296100_tehnovse`.`s_products_categories`\G
# SHOW TABLE STATUS FROM `p296100_tehnovse` LIKE 's_images'\G
# SHOW CREATE TABLE `p296100_tehnovse`.`s_images`\G
# EXPLAIN /*!50100 PARTITIONS*/
SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation, pc.category_id, i.filename as image
FROM s_variants v LEFT JOIN s_products p ON v.product_id=p.id

LEFT JOIN s_products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM s_products_categories WHERE product_id=p.id LIMIT 1)
LEFT JOIN s_images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM s_images WHERE product_id=p.id LIMIT 1) 
WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position\G

# Query 2: 1.19 QPS, 0.02x concurrency, ID 0x2B7932AFEE815737 at byte 1416827562
# This item is included in the report because it matches --limit.
# Scores: V/M = 0.13
# Time range: 2015-02-22 04:03:14 to 2015-02-23 03:57:41
# Attribute pct total min max avg 95% stddev median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count 5 102134
# Exec time 3 1524s 827us 5s 15ms 26ms 45ms 7ms
# Lock time 1 40s 79us 5s 394us 273us 18ms 98us
# Rows sent 0 99.74k 1 1 1 1 0 1
# Rows examine 2 349.62M 1.12k 51.62k 3.51k 6.01k 3.45k 2.76k
# Rows affecte 0 0 0 0 0 0 0 0
# Rows read 2 349.62M 1.12k 51.62k 3.51k 6.01k 3.45k 2.76k
# Bytes sent 0 5.86M 60 63 60.19 59.77 0.06 59.77
# Query size 4 45.08M 462 463 462.77 441.81 0 441.81
# String:
# Databases p27998_ope... (76195/74%)... 3 more
# Hosts
# Last errno 0
# Users p27998_ope... (76195/74%)... 3 more
# Query_time distribution
# 1us
# 10us
# 100us ###############
# 1ms ################################################################
# 10ms ################################################
# 100ms ###
# 1s #
# 10s+
# Tables
# SHOW TABLE STATUS FROM `p27998_opencart` LIKE 'oc_category_path'\G
# SHOW CREATE TABLE `p27998_opencart`.`oc_category_path`\G
# SHOW TABLE STATUS FROM `p27998_opencart` LIKE 'oc_product_to_category'\G
# SHOW CREATE TABLE `p27998_opencart`.`oc_product_to_category`\G
# SHOW TABLE STATUS FROM `p27998_opencart` LIKE 'oc_product'\G
# SHOW CREATE TABLE `p27998_opencart`.`oc_product`\G
# SHOW TABLE STATUS FROM `p27998_opencart` LIKE 'oc_product_description'\G
# SHOW CREATE TABLE `p27998_opencart`.`oc_product_description`\G
# SHOW TABLE STATUS FROM `p27998_opencart` LIKE 'oc_product_to_store'\G
# SHOW CREATE TABLE `p27998_opencart`.`oc_product_to_store`\G
# EXPLAIN /*!50100 PARTITIONS*/
SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_category_path cp LEFT JOIN oc_product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND cp.path_id = '382'\G


-- 
С уважением, Андрей Братанчук
Системный администратор.

 

Ссылка на сообщение
Поделиться на другие сайты

это администратор хостинга случайно копирнул. На это обращать внимания не стоит

 

 

oc_category_path - это что за таблица такая?

Ссылка на сообщение
Поделиться на другие сайты

Tw333k

Уберите саб-запросы или вынесите их отдельно. И вообще я думаю что можно попробовать обойтись и без них...

Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты

 

Tw333k

Уберите саб-запросы или вынесите их отдельно. И вообще я думаю что можно попробовать обойтись и без них...

 

...........

 

Попробуйте так:

 

SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation, pc.category_id, i.filename as image, MIN(pc.position) as pc_pmin, MIN(position) as i_pmin
FROM s_variants v LEFT JOIN s_products p ON v.product_id=p.id

LEFT JOIN s_products_categories pc ON (p.id = pc.product_id AND pc.position=pc_pmin)
LEFT JOIN s_images i ON (p.id = i.product_id AND i.position=i_pmin)
WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position
 

 

а из какого файла их убрать?

Ссылка на сообщение
Поделиться на другие сайты

писал не проверяя и чет натупил...

 

В общем замените проблемный запрос в yandex.php на этот. Если никаких наработок связанных с позиционированием картинок и категорий - нет, то будет работать...

 

 

SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation, pc.category_id, i.filename as image
FROM __variants v LEFT JOIN __products p ON v.product_id=p.id

LEFT JOIN __products_categories pc ON (p.id = pc.product_id AND pc.position=0)
LEFT JOIN __images i ON (p.id = i.product_id AND i.position=0)
WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position
 
Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...

 

писал не проверяя и чет натупил...

 

В общем замените проблемный запрос в yandex.php на этот. Если никаких наработок связанных с позиционированием картинок и категорий - нет, то будет работать...

 

 

 

SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation, pc.category_id, i.filename as image
FROM __variants v LEFT JOIN __products p ON v.product_id=p.id

LEFT JOIN __product__categories pc ON (p.id = pc.product_id AND pc.position=0)
LEFT JOIN __images i ON (p.id = i.product_id AND i.position=0)
WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position
 

Заменил, вот что  выдает Я.М. после индексации

Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Required child tag "offer" is missing for XML tag "offers" (строка 104, столбец 10)

Изменено пользователем Dilemma086
Ссылка на сообщение
Поделиться на другие сайты

да действительно. Допустил опечатку в названии таблицы.

Замените __product__categories на  __products_categories.

Или скопируйте наново запрос с поста #8

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...