Сайт WordPress с около 150000 сообщений. У меня есть запрос, который выполняется несколько раз на страницу нагрузку, и он необоснованно медленный - в порядке 2 сек: < /p>
SELECT COUNT(*) as cnt
FROM wp_postmeta pm, wp_posts p
inner join wp_posts p2 on p2.ID = p.post_parent and p2.post_status in('order_paid', 'order_received')
WHERE p.ID = pm.post_id
AND ((p.post_status = 'publish'))
AND p.post_type = 'tc_tickets_instances'
AND pm.meta_key = 'ticket_type_id'
AND pm.meta_value IN (157404,157405,155353,155354,155355);
Я установил WP MySQL для Speed Plugin, который создает новые составные индексы и что кажется , чтобы немного улучшить вещи. Запрос выполняется от 1,5 - 2,5 секунды «обычно», а страница, которую мы загружаем, используется, чтобы диапазон от 13 секунд до 24 секунды до плагина и от 8 с до 20 с после новые индексы создаются. /p>
Там нет ничего очевидного для решения, но, возможно, есть какая -то подлая техника, чтобы оптимизировать этот запрос, который я не нашел?
[! MySQL Workbench] [1]] [1] < /p>
'{ \"query_block\": {. \"select_id\": 1,
\"cost_info\": {
\"query_cost\": \"90915.83\"
},
\"nested_loop\": [
{
\"table\": {
\"table_name\": \"p\",
\"access_type\": \"ref\",
\"possible_keys\": [
\"PRIMARY\",
\"post_parent\",
\"type_status_date\"
],
\"key\": \"type_status_date\",
\"used_key_parts\": [
\"post_type\",
\"post_status\"
],
\"key_length\": \"164\",
\"ref\": [
\"const\",
\"const\"
],
\"rows_examined_per_scan\": 72012,
\"rows_produced_per_join\": 72012,
\"filtered\": \"100.00\",
\"cost_info\": {
\"read_cost\": \"10440.29\",
\"eval_cost\": \"7201.20\",
\"prefix_cost\": \"17641.49\",
\"data_read_per_join\": \"253M\"
},
\"used_columns\": [
\"ID\",
\"post_status\",
\"post_parent\",
\"post_type\"
]
}
},
{
\"table\": {
\"table_name\": \"p2\",
\"access_type\": \"eq_ref\",
\"possible_keys\": [
\"PRIMARY\"
],
\"key\": \"PRIMARY\",
\"used_key_parts\": [
\"ID\"
],
\"key_length\": \"8\",
\"ref\": [
\"motorco.p.post_parent\"
],
\"rows_examined_per_scan\": 1,
\"rows_produced_per_join\": 14402,
\"filtered\": \"20.00\",
\"cost_info\": {
\"read_cost\": \"52201.45\",
\"eval_cost\": \"1440.24\",
\"prefix_cost\": \"77044.14\",
\"data_read_per_join\": \"50M\"
},
\"used_columns\": [
\"ID\",
\"post_status\"
],
\"attached_condition\": \"(`motorco`.`p2`.`post_status` in (\'order_paid\',\'order_received\'))\"
}
},
{
\"table\": {
\"table_name\": \"pm\",
\"access_type\": \"ref\",
\"possible_keys\": [
\"PRIMARY\",
\"meta_key\",
\"meta_value\"
],
\"key\": \"PRIMARY\",
\"used_key_parts\": [
\"post_id\",
\"meta_key\"
],
\"key_length\": \"1030\",
\"ref\": [
\"motorco.p.ID\",
\"const\"
],
\"rows_examined_per_scan\": 1,
\"rows_produced_per_join\": 7580,
\"filtered\": \"50.00\",
\"cost_info\": {
\"read_cost\": \"12355.53\",
\"eval_cost\": \"758.08\",
\"prefix_cost\": \"90915.83\",
\"data_read_per_join\": \"7M\"
},
\"used_columns\": [
\"post_id\",
\"meta_key\",
\"meta_value\"
],
\"attached_condition\": \"(`motorco`.`pm`.`meta_value` in (157404,157405,155353,155354,155355))\"
}
}
]
}
}'
< /code>
Таблица defs: < /p>
CREATE TABLE `wp_postmeta` (
`meta_id` bigint unsigned NOT NULL AUTO_INCREMENT,
`post_id` bigint unsigned NOT NULL DEFAULT '0',
`meta_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`meta_value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci,
PRIMARY KEY (`post_id`,`meta_key`,`meta_id`),
UNIQUE KEY `meta_id` (`meta_id`),
KEY `meta_key` (`meta_key`,`meta_value`(32),`post_id`,`meta_id`),
KEY `meta_value` (`meta_value`(32),`meta_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1487185 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
CREATE TABLE `wp_posts` (
`ID` bigint unsigned NOT NULL AUTO_INCREMENT,
`post_author` bigint unsigned NOT NULL DEFAULT '0',
`post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`post_title` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`post_excerpt` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`post_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'publish',
`comment_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'open',
`ping_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'open',
`post_password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`post_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`to_ping` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`pinged` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_content_filtered` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`post_parent` bigint unsigned NOT NULL DEFAULT '0',
`guid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`menu_order` int NOT NULL DEFAULT '0',
`post_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'post',
`post_mime_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`comment_count` bigint NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`),
KEY `post_name` (`post_name`),
KEY `post_parent` (`post_parent`,`post_type`,`post_status`),
KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`post_author`),
KEY `post_author` (`post_author`,`post_type`,`post_status`,`post_date`)
) ENGINE=InnoDB AUTO_INCREMENT=159698 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
< /code>
[1]: https://i.sstatic.net/QurVFDnZ.png
Подробнее здесь: https://stackoverflow.com/questions/794 ... to-execute
Простой внутренний Query Join Postmeta требует 2SEC для выполнения ⇐ MySql
Форум по Mysql
-
Anonymous
1739580522
Anonymous
Сайт WordPress с около 150000 сообщений. У меня есть запрос, который выполняется несколько раз на страницу нагрузку, и он необоснованно медленный - в порядке 2 сек: < /p>
SELECT COUNT(*) as cnt
FROM wp_postmeta pm, wp_posts p
inner join wp_posts p2 on p2.ID = p.post_parent and p2.post_status in('order_paid', 'order_received')
WHERE p.ID = pm.post_id
AND ((p.post_status = 'publish'))
AND p.post_type = 'tc_tickets_instances'
AND pm.meta_key = 'ticket_type_id'
AND pm.meta_value IN (157404,157405,155353,155354,155355);
Я установил WP MySQL для Speed Plugin, который создает новые составные индексы и что кажется , чтобы немного улучшить вещи. Запрос выполняется от 1,5 - 2,5 секунды «обычно», а страница, которую мы загружаем, используется, чтобы диапазон от 13 секунд до 24 секунды до плагина и от 8 с до 20 с после новые индексы создаются. /p>
Там нет ничего очевидного для решения, но, возможно, есть какая -то подлая техника, чтобы оптимизировать этот запрос, который я не нашел?
[! MySQL Workbench] [1]] [1] < /p>
'{ \"query_block\": {. \"select_id\": 1,
\"cost_info\": {
\"query_cost\": \"90915.83\"
},
\"nested_loop\": [
{
\"table\": {
\"table_name\": \"p\",
\"access_type\": \"ref\",
\"possible_keys\": [
\"PRIMARY\",
\"post_parent\",
\"type_status_date\"
],
\"key\": \"type_status_date\",
\"used_key_parts\": [
\"post_type\",
\"post_status\"
],
\"key_length\": \"164\",
\"ref\": [
\"const\",
\"const\"
],
\"rows_examined_per_scan\": 72012,
\"rows_produced_per_join\": 72012,
\"filtered\": \"100.00\",
\"cost_info\": {
\"read_cost\": \"10440.29\",
\"eval_cost\": \"7201.20\",
\"prefix_cost\": \"17641.49\",
\"data_read_per_join\": \"253M\"
},
\"used_columns\": [
\"ID\",
\"post_status\",
\"post_parent\",
\"post_type\"
]
}
},
{
\"table\": {
\"table_name\": \"p2\",
\"access_type\": \"eq_ref\",
\"possible_keys\": [
\"PRIMARY\"
],
\"key\": \"PRIMARY\",
\"used_key_parts\": [
\"ID\"
],
\"key_length\": \"8\",
\"ref\": [
\"motorco.p.post_parent\"
],
\"rows_examined_per_scan\": 1,
\"rows_produced_per_join\": 14402,
\"filtered\": \"20.00\",
\"cost_info\": {
\"read_cost\": \"52201.45\",
\"eval_cost\": \"1440.24\",
\"prefix_cost\": \"77044.14\",
\"data_read_per_join\": \"50M\"
},
\"used_columns\": [
\"ID\",
\"post_status\"
],
\"attached_condition\": \"(`motorco`.`p2`.`post_status` in (\'order_paid\',\'order_received\'))\"
}
},
{
\"table\": {
\"table_name\": \"pm\",
\"access_type\": \"ref\",
\"possible_keys\": [
\"PRIMARY\",
\"meta_key\",
\"meta_value\"
],
\"key\": \"PRIMARY\",
\"used_key_parts\": [
\"post_id\",
\"meta_key\"
],
\"key_length\": \"1030\",
\"ref\": [
\"motorco.p.ID\",
\"const\"
],
\"rows_examined_per_scan\": 1,
\"rows_produced_per_join\": 7580,
\"filtered\": \"50.00\",
\"cost_info\": {
\"read_cost\": \"12355.53\",
\"eval_cost\": \"758.08\",
\"prefix_cost\": \"90915.83\",
\"data_read_per_join\": \"7M\"
},
\"used_columns\": [
\"post_id\",
\"meta_key\",
\"meta_value\"
],
\"attached_condition\": \"(`motorco`.`pm`.`meta_value` in (157404,157405,155353,155354,155355))\"
}
}
]
}
}'
< /code>
Таблица defs: < /p>
CREATE TABLE `wp_postmeta` (
`meta_id` bigint unsigned NOT NULL AUTO_INCREMENT,
`post_id` bigint unsigned NOT NULL DEFAULT '0',
`meta_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`meta_value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci,
PRIMARY KEY (`post_id`,`meta_key`,`meta_id`),
UNIQUE KEY `meta_id` (`meta_id`),
KEY `meta_key` (`meta_key`,`meta_value`(32),`post_id`,`meta_id`),
KEY `meta_value` (`meta_value`(32),`meta_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1487185 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
CREATE TABLE `wp_posts` (
`ID` bigint unsigned NOT NULL AUTO_INCREMENT,
`post_author` bigint unsigned NOT NULL DEFAULT '0',
`post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`post_title` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`post_excerpt` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`post_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'publish',
`comment_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'open',
`ping_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'open',
`post_password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`post_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`to_ping` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`pinged` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_content_filtered` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`post_parent` bigint unsigned NOT NULL DEFAULT '0',
`guid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`menu_order` int NOT NULL DEFAULT '0',
`post_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'post',
`post_mime_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`comment_count` bigint NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`),
KEY `post_name` (`post_name`),
KEY `post_parent` (`post_parent`,`post_type`,`post_status`),
KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`post_author`),
KEY `post_author` (`post_author`,`post_type`,`post_status`,`post_date`)
) ENGINE=InnoDB AUTO_INCREMENT=159698 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
< /code>
[1]: https://i.sstatic.net/QurVFDnZ.png
Подробнее здесь: [url]https://stackoverflow.com/questions/79440298/simple-postmeta-inner-join-query-is-taking-2sec-to-execute[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия