重现步骤
反馈人:袁慧斌
数据库:zhcxkj_center_listing_comprehensive
查询时间:78.2022
执行次数: 44
扫描行数:2811500
发送行数:200
指纹SQL: SELECT tml . id , tml . id listingId , tlvm . id variantId , tml . source_id , tml . source_name , tlvm . sku , tml . title , tlvm . source_sku , tml . pf_listing_id , tml . stock , tml . platform_atrributes , tml . sale_price , tml . currency , tml . category_id , tml . publisher_id , tml . publisher_name , tml . sales_id , tml . sales_name , tml . publish_time , tml . pf_online_time , tml . pf_offline_time , tml . pf_update_time , tml . country_code , tml . fail_msg , tml . image , tml . category_name , tml . status , tml . create_by , tml . create_time , tml . update_by , tml . update_time , tml . logistic_type , tml . listing_type , tml . pf_global_listing_id , tml . inventory_id , tml . sub_status , tml . is_deleted FROM ? tml INNER JOIN t_listing_variant_mercadolibre tlvm ON tml . source_id = tlvm . source_id AND tml . pf_listing_id = tlvm . pf_listing_id WHERE tml . id > ? and tml . is_deleted = ? and tml . source_id = ? and tml . status in ( ? ) limit ? ;
真实SQL:SELECT tml.id, tml.id listingId, tlvm.id variantId, tml.source_id, tml.source_name, tlvm.sku, tml.title, tlvm.source_sku, tml.pf_listing_id, tml.stock, tml.platform_atrributes, tml.sale_price, tml.currency, tml.category_id, tml.publisher_id, tml.publisher_name, tml.sales_id, tml.sales_name, tml.publish_time, tml.pf_online_time, tml.pf_offline_time, tml.pf_update_time, tml.country_code, tml.fail_msg, tml.image, tml.category_name, tml.status, tml.create_by, tml.create_time, tml.update_by, tml.update_time, tml.logistic_type, tml.listing_type, tml.pf_global_listing_id, tml.inventory_id, tml.sub_status, tml.is_deleted FROM t_listing_mercadolibre tml INNER JOIN t_listing_variant_mercadolibre tlvm ON tml.source_id = tlvm.source_id AND tml.pf_listing_id = tlvm.pf_listing_id WHERE tml.id > 1468731 and tml.is_deleted = 0 and tml.source_id = 18088 and tml.status in ( 3 ) limit 200;
无人工修改
AISQL修改建议:以下是优化后的SQL语句:


SELECT tml.id AS listingId,
tlvm.id AS variantId,
tml.source_id,
tml.source_name,
tlvm.sku,
tml.title,
tlvm.source_sku,
tml.pf_listing_id,
tml.stock,
tml.platform_atrributes,
tml.sale_price,
tml.currency,
tml.category_id,
tml.publisher_id,
tml.publisher_name,
tml.sales_id,
tml.sales_name,
tml.publish_time,
tml.pf_online_time,
tml.pf_offline_time,
tml.pf_update_time,
tml.country_code,
tml.fail_msg,
tml.image,
tml.category_name,
tml.status,
tml.create_by,
tml.create_time,
tml.update_by,
tml.update_time,
tml.logistic_type,
tml.listing_type,
tml.pf_global_listing_id,
tml.inventory_id,
tml.sub_status,
tml.is_deleted
FROM t_listing_mercadolibre tml
STRAIGHT_JOIN t_listing_variant_mercadolibre tlvm ON tml.source_id = tlvm.source_id
AND tml.pf_listing_id = tlvm.pf_listing_id
WHERE tml.id > 1468731
AND tml.is_deleted = 0
AND tml.source_id = 18088
AND tml.status = 3
LIMIT 200;


优化说明:
1. 将INNER JOIN改为STRAIGHT_JOIN强制按FROM子句顺序执行,避免优化器选择次优执行计划
2. tml.status IN (3)简化为tml.status = 3,因为IN列表只有一个值
3. 移除了重复的tml.id列,并为列添加了明确的别名
4. 确保两个表的连接字段(source_id和pf_listing_id)上都有索引

如需进一步优化,建议考虑:
1. 在tml表的(source_id, status, is_deleted, id)上创建复合索引
2. 在tlvm表的(source_id, pf_listing_id)上创建复合索引
explain表:







id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE tml None range PRIMARY,uk_source_id_country_code_pf_listing_logistic_type_platform_type,idx_pf_listing_id,idx_status,idx_source_id_update_time,idx_source_site_status,idx_listing_mercadolibre_optim,idx_pflistingid_sourceid_status_logistictype PRIMARY 8 None 8484028 0.03 Using where
1 SIMPLE tlvm None ref uk_source_id_pf_listing_id_source_sku,idx_pf_listing_id uk_source_id_pf_listing_id_source_sku 266 const,zhcxkj_center_listing_comprehensive.tml.pf_listing_id 1 100 None

额外建议:
索引建议:
取出表 【t_listing_mercadolibre】 where条件表达式 【is_deleted = 0】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。

取出表 【t_listing_mercadolibre】 where条件表达式 【source_id = 18088】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。

取出表 【t_listing_mercadolibre】 where条件字段 【status】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。

→ 【t_listing_mercadolibre】表 【id】字段,索引已经存在,无需添加任何索引。

【t_listing_mercadolibre】表 【id】字段,索引分析:
+------------------------+--------------+---------------+---------------+
| TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |
+========================+==============+===============+===============+
| t_listing_mercadolibre | PRIMARY | id | 16943040 |
+------------------------+--------------+---------------+---------------+

→ 【t_listing_variant_mercadolibre】 表,无需添加任何索引。


历史记录  
  1. 2025-09-09 09:34:25, 由 李乐同 创建。
  2. 2025-09-09 15:13:51, 由 王金锋 解决,方案为 非BUG-纯属误判 。
    修改了 解决方案,旧值为 "",新值为 "feibug"。
    修改了 解决版本,旧值为 "",新值为 "trunk"。
    修改了 解决日期,旧值为 "",新值为 "2025-09-09 15:10:10"。
    修改了 指派给 ,旧值为 "wangjinfeng",新值为 "liletong"。
    修改了 Bug状态 ,旧值为 "active",新值为 "resolved"。
    修改了 是否确认,旧值为 "0",新值为 "1"。
    修改了 解决者 ,旧值为 "",新值为 "wangjinfeng"。
  3. 2025-09-09 15:15:31, 由 李乐同 编辑。
    修改了 所属模块 ,旧值为 "0",新值为 "1874"。
    修改了 业务部门 ,旧值为 "0",新值为 "2"。
    修改了 开发责任人,旧值为 "",新值为 "wangjinfeng"。
    修改了 测试责任人,旧值为 "",新值为 "guohan"。
    修改了 解决时效 ,旧值为 "0",新值为 "5.60"。
    修改了 重现步骤 ,区别为:
    001- 反馈人:袁慧斌
    001+ 反馈人:袁慧斌 数据库:zhcxkj_center_listing_comprehensive 查询时间:78.2022 执行次数: 44 扫描行数:2811500 发送行数:200 指纹SQL: SELECT tml . id , tml . id listingId , tlvm . id variantId , tml . source_id , tml . source_name , tlvm . sku , tml . title , tlvm . source_sku , tml . pf_listing_id , tml . stock , tml . platform_atrributes , tml . sale_price , tml . currency , tml . category_id , tml . publisher_id , tml . publisher_name , tml . sales_id , tml . sales_name , tml . publish_time , tml . pf_online_time , tml . pf_offline_time , tml . pf_update_time , tml . country_code , tml . fail_msg , tml . image , tml . category_name , tml . status , tml . create_by , tml . create_time , tml . update_by , tml . update_time , tml . logistic_type , tml . listing_type , tml . pf_global_listing_id , tml . inventory_id , tml . sub_status , tml . is_deleted FROM ? tml INNER JOIN t_listing_variant_mercadolibre tlvm ON tml . source_id = tlvm . source_id AND tml . pf_listing_id = tlvm . pf_listing_id WHERE tml . id > ? and tml . is_deleted = ? and tml . source_id = ? and tml . status in ( ? ) limit ? ; 真实SQL:SELECT tml.id, tml.id listingId, tlvm.id variantId, tml.source_id, tml.source_name, tlvm.sku, tml.title, tlvm.source_sku, tml.pf_listing_id, tml.stock, tml.platform_atrributes, tml.sale_price, tml.currency, tml.category_id, tml.publisher_id, tml.publisher_name, tml.sales_id, tml.sales_name, tml.publish_time, tml.pf_online_time, tml.pf_offline_time, tml.pf_update_time, tml.country_code, tml.fail_msg, tml.image, tml.category_name, tml.status, tml.create_by, tml.create_time, tml.update_by, tml.update_time, tml.logistic_type, tml.listing_type, tml.pf_global_listing_id, tml.inventory_id, tml.sub_status, tml.is_deleted FROM t_listing_mercadolibre tml INNER JOIN t_listing_variant_mercadolibre tlvm ON tml.source_id = tlvm.source_id AND tml.pf_listing_id = tlvm.pf_listing_id WHERE tml.id > 1468731 and tml.is_deleted = 0 and tml.source_id = 18088 and tml.status in ( 3 ) limit 200; 无人工修改 AISQL修改建议:以下是优化后的SQL语句: SELECT tml.id AS listingId, tlvm.id AS variantId, tml.source_id, tml.source_name, tlvm.sku, tml.title, tlvm.source_sku, tml.pf_listing_id, tml.stock, tml.platform_atrributes, tml.sale_price, tml.currency, tml.category_id, tml.publisher_id, tml.publisher_name, tml.sales_id, tml.sales_name, tml.publish_time, tml.pf_online_time, tml.pf_offline_time, tml.pf_update_time, tml.country_code, tml.fail_msg, tml.image, tml.category_name, tml.status, tml.create_by, tml.create_time, tml.update_by, tml.update_time, tml.logistic_type, tml.listing_type, tml.pf_global_listing_id, tml.inventory_id, tml.sub_status, tml.is_deleted FROM t_listing_mercadolibre tml STRAIGHT_JOIN t_listing_variant_mercadolibre tlvm ON tml.source_id = tlvm.source_id AND tml.pf_listing_id = tlvm.pf_listing_id WHERE tml.id > 1468731 AND tml.is_deleted = 0 AND tml.source_id = 18088 AND tml.status = 3 LIMIT 200; 优化说明: 1. 将INNER JOIN改为STRAIGHT_JOIN强制按FROM子句顺序执行,避免优化器选择次优执行计划 2. tml.status IN (3)简化为tml.status = 3,因为IN列表只有一个值 3. 移除了重复的tml.id列,并为列添加了明确的别名 4. 确保两个表的连接字段(source_id和pf_listing_id)上都有索引 如需进一步优化,建议考虑: 1. 在tml表的(source_id, status, is_deleted, id)上创建复合索引 2. 在tlvm表的(source_id, pf_listing_id)上创建复合索引 explain表:id
    002- 数据库:zhcxkj_center_listing_comprehensive
    002+ select_type
    003- 查询时间:78.2022
    003+ table
    004- 执行次数: 44
    004+ partitions
    005- 扫描行数:2811500
    005+ type
    006- 发送行数:200
    006+ possible_keys
    007- 指纹SQL: SELECT tml . id , tml . id listingId , tlvm . id variantId , tml . source_id , tml . source_name , tlvm . sku , tml . title , tlvm . source_sku , tml . pf_listing_id , tml . stock , tml . platform_atrributes , tml . sale_price , tml . currency , tml . category_id , tml . publisher_id , tml . publisher_name , tml . sales_id , tml . sales_name , tml . publish_time , tml . pf_online_time , tml . pf_offline_time , tml . pf_update_time , tml . country_code , tml . fail_msg , tml . image , tml . category_name , tml . status , tml . create_by , tml . create_time , tml . update_by , tml . update_time , tml . logistic_type , tml . listing_type , tml . pf_global_listing_id , tml . inventory_id , tml . sub_status , tml . is_deleted FROM ? tml INNER JOIN t_listing_variant_mercadolibre tlvm ON tml . source_id = tlvm . source_id AND tml . pf_listing_id = tlvm . pf_listing_id WHERE tml . id > ? and tml . is_deleted = ? and tml . source_id = ? and tml . status in ( ? ) limit ? ;
    007+ key
    008- 真实SQL:SELECT tml.id, tml.id listingId, tlvm.id variantId, tml.source_id, tml.source_name, tlvm.sku, tml.title, tlvm.source_sku, tml.pf_listing_id, tml.stock, tml.platform_atrributes, tml.sale_price, tml.currency, tml.category_id, tml.publisher_id, tml.publisher_name, tml.sales_id, tml.sales_name, tml.publish_time, tml.pf_online_time, tml.pf_offline_time, tml.pf_update_time, tml.country_code, tml.fail_msg, tml.image, tml.category_name, tml.status, tml.create_by, tml.create_time, tml.update_by, tml.update_time, tml.logistic_type, tml.listing_type, tml.pf_global_listing_id, tml.inventory_id, tml.sub_status, tml.is_deleted FROM t_listing_mercadolibre tml INNER JOIN t_listing_variant_mercadolibre tlvm ON tml.source_id = tlvm.source_id AND tml.pf_listing_id = tlvm.pf_listing_id WHERE tml.id > 1468731 and tml.is_deleted = 0 and tml.source_id = 18088 and tml.status in ( 3 ) limit 200;
    008+ key_len
    009- 无人工修改
    009+ ref
    010- AISQL修改建议:以下是优化后的SQL语句:
    010+ rows
    011-
    011+ filtered
    012-
    012+ Extra
    013- SELECT tml.id AS listingId,
    013+ 1
    014- tlvm.id AS variantId,
    014+ SIMPLE
    015- tml.source_id,
    015+ tml
    016- tml.source_name,
    016+ None
    017- tlvm.sku,
    017+ range
    018- tml.title,
    018+ PRIMARY,uk_source_id_country_code_pf_listing_logistic_type_platform_type,idx_pf_listing_id,idx_status,idx_source_id_update_time,idx_source_site_status,idx_listing_mercadolibre_optim,idx_pflistingid_sourceid_status_logistictype
    019- tlvm.source_sku,
    019+ PRIMARY
    020- tml.pf_listing_id,
    020+ 8
    021- tml.stock,
    021+ None
    022- tml.platform_atrributes,
    022+ 8484028
    023- tml.sale_price,
    023+ 0.03
    024- tml.currency,
    024+ Using where
    025- tml.category_id,
    025+ 1
    026- tml.publisher_id,
    026+ SIMPLE
    027- tml.publisher_name,
    027+ tlvm
    028- tml.sales_id,
    028+ None
    029- tml.sales_name,
    029+ ref
    030- tml.publish_time,
    030+ uk_source_id_pf_listing_id_source_sku,idx_pf_listing_id
    031- tml.pf_online_time,
    031+ uk_source_id_pf_listing_id_source_sku
    032- tml.pf_offline_time,
    032+ 266
    033- tml.pf_update_time,
    033+ const,zhcxkj_center_listing_comprehensive.tml.pf_listing_id
    034- tml.country_code,
    034+ 1
    035- tml.fail_msg,
    035+ 100
    036- tml.image,
    036+ None
    037- tml.category_name,
    037+
    038- tml.status,
    038+ 额外建议: 索引建议: 取出表 【t_listing_mercadolibre】 where条件表达式 【is_deleted = 0】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。 取出表 【t_listing_mercadolibre】 where条件表达式 【source_id = 18088】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。 取出表 【t_listing_mercadolibre】 where条件字段 【status】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。→ 【t_listing_mercadolibre】表 【id】字段,索引已经存在,无需添加任何索引。 【t_listing_mercadolibre】表 【id】字段,索引分析: +------------------------+--------------+---------------+---------------+ | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY | +========================+==============+===============+===============+ | t_listing_mercadolibre | PRIMARY | id | 16943040 | +------------------------+--------------+---------------+---------------+→ 【t_listing_variant_mercadolibre】 表,无需添加任何索引。
    039- tml.create_by,
    040- tml.create_time,
    041- tml.update_by,
    042- tml.update_time,
    043- tml.logistic_type,
    044- tml.listing_type,
    045- tml.pf_global_listing_id,
    046- tml.inventory_id,
    047- tml.sub_status,
    048- tml.is_deleted
    049- FROM t_listing_mercadolibre tml
    050- STRAIGHT_JOIN t_listing_variant_mercadolibre tlvm ON tml.source_id = tlvm.source_id
    051- AND tml.pf_listing_id = tlvm.pf_listing_id
    052- WHERE tml.id > 1468731
    053- AND tml.is_deleted = 0
    054- AND tml.source_id = 18088
    055- AND tml.status = 3
    056- LIMIT 200;
    057-
    058-
    059- 优化说明:
    060- 1. 将INNER JOIN改为STRAIGHT_JOIN强制按FROM子句顺序执行,避免优化器选择次优执行计划
    061- 2. tml.status IN (3)简化为tml.status = 3,因为IN列表只有一个值
    062- 3. 移除了重复的tml.id列,并为列添加了明确的别名
    063- 4. 确保两个表的连接字段(source_id和pf_listing_id)上都有索引
    064-
    065- 如需进一步优化,建议考虑:
    066- 1. 在tml表的(source_id, status, is_deleted, id)上创建复合索引
    067- 2. 在tlvm表的(source_id, pf_listing_id)上创建复合索引
    068- explain表:
    069-
    070-
    071-
    072-
    073-
    074-
    075-
    076-
    077-
    078-
    079-
    080- id
    081-
    082-
    083- select_type
    084-
    085-
    086- table
    087-
    088-
    089- partitions
    090-
    091-
    092- type
    093-
    094-
    095- possible_keys
    096-
    097-
    098- key
    099-
    100-
    101- key_len
    102-
    103-
    104- ref
    105-
    106-
    107- rows
    108-
    109-
    110- filtered
    111-
    112-
    113- Extra
    114-
    115-
    116-
    117-
    118-
    119-
    120- 1
    121-
    122-
    123- SIMPLE
    124-
    125-
    126- tml
    127-
    128-
    129- None
    130-
    131-
    132- range
    133-
    134-
    135- PRIMARY,uk_source_id_country_code_pf_listing_logistic_type_platform_type,idx_pf_listing_id,idx_status,idx_source_id_update_time,idx_source_site_status,idx_listing_mercadolibre_optim,idx_pflistingid_sourceid_status_logistictype
    136-
    137-
    138- PRIMARY
    139-
    140-
    141- 8
    142-
    143-
    144- None
    145-
    146-
    147- 8484028
    148-
    149-
    150- 0.03
    151-
    152-
    153- Using where
    154-
    155-
    156-
    157-
    158- 1
    159-
    160-
    161- SIMPLE
    162-
    163-
    164- tlvm
    165-
    166-
    167- None
    168-
    169-
    170- ref
    171-
    172-
    173- uk_source_id_pf_listing_id_source_sku,idx_pf_listing_id
    174-
    175-
    176- uk_source_id_pf_listing_id_source_sku
    177-
    178-
    179- 266
    180-
    181-
    182- const,zhcxkj_center_listing_comprehensive.tml.pf_listing_id
    183-
    184-
    185- 1
    186-
    187-
    188- 100
    189-
    190-
    191- None
    192-
    193-
    194-
    195-
    196-
    197- 额外建议:
    198- 索引建议:
    199- 取出表 【t_listing_mercadolibre】 where条件表达式 【is_deleted = 0】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。
    200-
    201- 取出表 【t_listing_mercadolibre】 where条件表达式 【source_id = 18088】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。
    202-
    203- 取出表 【t_listing_mercadolibre】 where条件字段 【status】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。
    204-
    205- → 【t_listing_mercadolibre】表 【id】字段,索引已经存在,无需添加任何索引。
    206-
    207- 【t_listing_mercadolibre】表 【id】字段,索引分析:
    208- +------------------------+--------------+---------------+---------------+
    209- | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |
    210- +========================+==============+===============+===============+
    211- | t_listing_mercadolibre | PRIMARY | id | 16943040 |
    212- +------------------------+--------------+---------------+---------------+
    213-
    214- → 【t_listing_variant_mercadolibre】 表,无需添加任何索引。
    215-
    216-
    001- 反馈人:袁慧斌<br />
    001+ 反馈人:袁慧斌<br /> 数据库:zhcxkj_center_listing_comprehensive<br /> 查询时间:78.2022<br /> 执行次数: 44<br /> 扫描行数:2811500<br /> 发送行数:200<br /> 指纹SQL: SELECT tml . id , tml . id listingId , tlvm . id variantId , tml . source_id , tml . source_name , tlvm . sku , tml . title , tlvm . source_sku , tml . pf_listing_id , tml . stock , tml . platform_atrributes , tml . sale_price , tml . currency , tml . category_id , tml . publisher_id , tml . publisher_name , tml . sales_id , tml . sales_name , tml . publish_time , tml . pf_online_time , tml . pf_offline_time , tml . pf_update_time , tml . country_code , tml . fail_msg , tml . image , tml . category_name , tml . status , tml . create_by , tml . create_time , tml . update_by , tml . update_time , tml . logistic_type , tml . listing_type , tml . pf_global_listing_id , tml . inventory_id , tml . sub_status , tml . is_deleted FROM ? tml INNER JOIN t_listing_variant_mercadolibre tlvm ON tml . source_id = tlvm . source_id AND tml . pf_listing_id = tlvm . pf_listing_id WHERE tml . id &gt; ? and tml . is_deleted = ? and tml . source_id = ? and tml . status in ( ? ) limit ? ;<br /> 真实SQL:SELECT tml.id, tml.id listingId, tlvm.id variantId, tml.source_id, tml.source_name, tlvm.sku, tml.title, tlvm.source_sku, tml.pf_listing_id, tml.stock, tml.platform_atrributes, tml.sale_price, tml.currency, tml.category_id, tml.publisher_id, tml.publisher_name, tml.sales_id, tml.sales_name, tml.publish_time, tml.pf_online_time, tml.pf_offline_time, tml.pf_update_time, tml.country_code, tml.fail_msg, tml.image, tml.category_name, tml.status, tml.create_by, tml.create_time, tml.update_by, tml.update_time, tml.logistic_type, tml.listing_type, tml.pf_global_listing_id, tml.inventory_id, tml.sub_status, tml.is_deleted FROM t_listing_mercadolibre tml INNER JOIN t_listing_variant_mercadolibre tlvm ON tml.source_id = tlvm.source_id AND tml.pf_listing_id = tlvm.pf_listing_id WHERE tml.id &gt; 1468731 and tml.is_deleted = 0 and tml.source_id = 18088 and tml.status in ( 3 ) limit 200;<br /> 无人工修改<br /> AISQL修改建议:以下是优化后的SQL语句:<br /><br /><br /> SELECT tml.id AS listingId,<br /> tlvm.id AS variantId,<br /> tml.source_id,<br /> tml.source_name,<br /> tlvm.sku,<br /> tml.title,<br /> tlvm.source_sku,<br /> tml.pf_listing_id,<br /> tml.stock,<br /> tml.platform_atrributes,<br /> tml.sale_price,<br /> tml.currency,<br /> tml.category_id,<br /> tml.publisher_id,<br /> tml.publisher_name,<br /> tml.sales_id,<br /> tml.sales_name,<br /> tml.publish_time,<br /> tml.pf_online_time,<br /> tml.pf_offline_time,<br /> tml.pf_update_time,<br /> tml.country_code,<br /> tml.fail_msg,<br /> tml.image,<br /> tml.category_name,<br /> tml.status,<br /> tml.create_by,<br /> tml.create_time,<br /> tml.update_by,<br /> tml.update_time,<br /> tml.logistic_type,<br /> tml.listing_type,<br /> tml.pf_global_listing_id,<br /> tml.inventory_id,<br /> tml.sub_status,<br /> tml.is_deleted<br /> FROM t_listing_mercadolibre tml<br /> STRAIGHT_JOIN t_listing_variant_mercadolibre tlvm ON tml.source_id = tlvm.source_id<br /> AND tml.pf_listing_id = tlvm.pf_listing_id<br /> WHERE tml.id &gt; 1468731<br /> AND tml.is_deleted = 0<br /> AND tml.source_id = 18088<br /> AND tml.status = 3<br /> LIMIT 200;<br /><br /><br /> 优化说明:<br /> 1. 将INNER JOIN改为STRAIGHT_JOIN强制按FROM子句顺序执行,避免优化器选择次优执行计划<br /> 2. tml.status IN (3)简化为tml.status = 3,因为IN列表只有一个值<br /> 3. 移除了重复的tml.id列,并为列添加了明确的别名<br /> 4. 确保两个表的连接字段(source_id和pf_listing_id)上都有索引<br /><br /> 如需进一步优化,建议考虑:<br /> 1. 在tml表的(source_id, status, is_deleted, id)上创建复合索引<br /> 2. 在tlvm表的(source_id, pf_listing_id)上创建复合索引<br /> explain表:<br /><br /><br /><br /><br /><br /><br /><br /><table><tbody><tr><th>id</th>
    002- 数据库:zhcxkj_center_listing_comprehensive<br />
    002+ <th>select_type</th>
    003- 查询时间:78.2022<br />
    003+ <th>table</th>
    004- 执行次数: 44<br />
    004+ <th>partitions</th>
    005- 扫描行数:2811500<br />
    005+ <th>type</th>
    006- 发送行数:200<br />
    006+ <th>possible_keys</th>
    007- 指纹SQL: SELECT tml . id , tml . id listingId , tlvm . id variantId , tml . source_id , tml . source_name , tlvm . sku , tml . title , tlvm . source_sku , tml . pf_listing_id , tml . stock , tml . platform_atrributes , tml . sale_price , tml . currency , tml . category_id , tml . publisher_id , tml . publisher_name , tml . sales_id , tml . sales_name , tml . publish_time , tml . pf_online_time , tml . pf_offline_time , tml . pf_update_time , tml . country_code , tml . fail_msg , tml . image , tml . category_name , tml . status , tml . create_by , tml . create_time , tml . update_by , tml . update_time , tml . logistic_type , tml . listing_type , tml . pf_global_listing_id , tml . inventory_id , tml . sub_status , tml . is_deleted FROM ? tml INNER JOIN t_listing_variant_mercadolibre tlvm ON tml . source_id = tlvm . source_id AND tml . pf_listing_id = tlvm . pf_listing_id WHERE tml . id &gt; ? and tml . is_deleted = ? and tml . source_id = ? and tml . status in ( ? ) limit ? ;<br />
    007+ <th>key</th>
    008- 真实SQL:SELECT tml.id, tml.id listingId, tlvm.id variantId, tml.source_id, tml.source_name, tlvm.sku, tml.title, tlvm.source_sku, tml.pf_listing_id, tml.stock, tml.platform_atrributes, tml.sale_price, tml.currency, tml.category_id, tml.publisher_id, tml.publisher_name, tml.sales_id, tml.sales_name, tml.publish_time, tml.pf_online_time, tml.pf_offline_time, tml.pf_update_time, tml.country_code, tml.fail_msg, tml.image, tml.category_name, tml.status, tml.create_by, tml.create_time, tml.update_by, tml.update_time, tml.logistic_type, tml.listing_type, tml.pf_global_listing_id, tml.inventory_id, tml.sub_status, tml.is_deleted FROM t_listing_mercadolibre tml INNER JOIN t_listing_variant_mercadolibre tlvm ON tml.source_id = tlvm.source_id AND tml.pf_listing_id = tlvm.pf_listing_id WHERE tml.id &gt; 1468731 and tml.is_deleted = 0 and tml.source_id = 18088 and tml.status in ( 3 ) limit 200;<br />
    008+ <th>key_len</th>
    009- 无人工修改<br />
    009+ <th>ref</th>
    010- AISQL修改建议:以下是优化后的SQL语句:<br />
    010+ <th>rows</th>
    011- <br />
    011+ <th>filtered</th>
    012- <br />
    012+ <th>Extra</th>
    013- SELECT tml.id AS listingId,<br />
    013+ </tr></tbody><tbody><tr><td>1</td>
    014- tlvm.id AS variantId,<br />
    014+ <td>SIMPLE</td>
    015- tml.source_id,<br />
    015+ <td>tml</td>
    016- tml.source_name,<br />
    016+ <td>None</td>
    017- tlvm.sku,<br />
    017+ <td>range</td>
    018- tml.title,<br />
    018+ <td>PRIMARY,uk_source_id_country_code_pf_listing_logistic_type_platform_type,idx_pf_listing_id,idx_status,idx_source_id_update_time,idx_source_site_status,idx_listing_mercadolibre_optim,idx_pflistingid_sourceid_status_logistictype</td>
    019- tlvm.source_sku,<br />
    019+ <td>PRIMARY</td>
    020- tml.pf_listing_id,<br />
    020+ <td>8</td>
    021- tml.stock,<br />
    021+ <td>None</td>
    022- tml.platform_atrributes,<br />
    022+ <td>8484028</td>
    023- tml.sale_price,<br />
    023+ <td>0.03</td>
    024- tml.currency,<br />
    024+ <td>Using where</td>
    025- tml.category_id,<br />
    025+ </tr><tr><td>1</td>
    026- tml.publisher_id,<br />
    026+ <td>SIMPLE</td>
    027- tml.publisher_name,<br />
    027+ <td>tlvm</td>
    028- tml.sales_id,<br />
    028+ <td>None</td>
    029- tml.sales_name,<br />
    029+ <td>ref</td>
    030- tml.publish_time,<br />
    030+ <td>uk_source_id_pf_listing_id_source_sku,idx_pf_listing_id</td>
    031- tml.pf_online_time,<br />
    031+ <td>uk_source_id_pf_listing_id_source_sku</td>
    032- tml.pf_offline_time,<br />
    032+ <td>266</td>
    033- tml.pf_update_time,<br />
    033+ <td>const,zhcxkj_center_listing_comprehensive.tml.pf_listing_id</td>
    034- tml.country_code,<br />
    034+ <td>1</td>
    035- tml.fail_msg,<br />
    035+ <td>100</td>
    036- tml.image,<br />
    036+ <td>None</td>
    037- tml.category_name,<br />
    037+ </tr></tbody></table><br />
    038- tml.status,<br />
    038+ 额外建议:<br /> 索引建议:<br /> 取出表 【t_listing_mercadolibre】 where条件表达式 【is_deleted = 0】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。<br /><br /> 取出表 【t_listing_mercadolibre】 where条件表达式 【source_id = 18088】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。<br /><br /> 取出表 【t_listing_mercadolibre】 where条件字段 【status】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。<br /><br /><span style="color:#008000;font-weight:bold;">→ 【t_listing_mercadolibre】表 【id】字段,索引已经存在,无需添加任何索引。</span><br /><br /> 【t_listing_mercadolibre】表 【id】字段,索引分析:<br /> +------------------------+--------------+---------------+---------------+<br /> | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |<br /> +========================+==============+===============+===============+<br /> | t_listing_mercadolibre | PRIMARY | id | 16943040 |<br /> +------------------------+--------------+---------------+---------------+<br /><br /><span style="color:#008000;font-weight:bold;">→ 【t_listing_variant_mercadolibre】 表,无需添加任何索引。</span><br /><br /><br />
    039- tml.create_by,<br />
    040- tml.create_time,<br />
    041- tml.update_by,<br />
    042- tml.update_time,<br />
    043- tml.logistic_type,<br />
    044- tml.listing_type,<br />
    045- tml.pf_global_listing_id,<br />
    046- tml.inventory_id,<br />
    047- tml.sub_status,<br />
    048- tml.is_deleted<br />
    049- FROM t_listing_mercadolibre tml<br />
    050- STRAIGHT_JOIN t_listing_variant_mercadolibre tlvm ON tml.source_id = tlvm.source_id<br />
    051- AND tml.pf_listing_id = tlvm.pf_listing_id<br />
    052- WHERE tml.id &gt; 1468731<br />
    053- AND tml.is_deleted = 0<br />
    054- AND tml.source_id = 18088<br />
    055- AND tml.status = 3<br />
    056- LIMIT 200;<br />
    057- <br />
    058- <br />
    059- 优化说明:<br />
    060- 1. 将INNER JOIN改为STRAIGHT_JOIN强制按FROM子句顺序执行,避免优化器选择次优执行计划<br />
    061- 2. tml.status IN (3)简化为tml.status = 3,因为IN列表只有一个值<br />
    062- 3. 移除了重复的tml.id列,并为列添加了明确的别名<br />
    063- 4. 确保两个表的连接字段(source_id和pf_listing_id)上都有索引<br />
    064- <br />
    065- 如需进一步优化,建议考虑:<br />
    066- 1. 在tml表的(source_id, status, is_deleted, id)上创建复合索引<br />
    067- 2. 在tlvm表的(source_id, pf_listing_id)上创建复合索引<br />
    068- explain表:<br />
    069- <br />
    070- <br />
    071- <br />
    072- <br />
    073- <br />
    074- <br />
    075- <br />
    076- <table>
    077- <tbody>
    078- <tr>
    079- <th>
    080- id
    081- </th>
    082- <th>
    083- select_type
    084- </th>
    085- <th>
    086- table
    087- </th>
    088- <th>
    089- partitions
    090- </th>
    091- <th>
    092- type
    093- </th>
    094- <th>
    095- possible_keys
    096- </th>
    097- <th>
    098- key
    099- </th>
    100- <th>
    101- key_len
    102- </th>
    103- <th>
    104- ref
    105- </th>
    106- <th>
    107- rows
    108- </th>
    109- <th>
    110- filtered
    111- </th>
    112- <th>
    113- Extra
    114- </th>
    115- </tr>
    116- </tbody>
    117- <tbody>
    118- <tr>
    119- <td>
    120- 1
    121- </td>
    122- <td>
    123- SIMPLE
    124- </td>
    125- <td>
    126- tml
    127- </td>
    128- <td>
    129- None
    130- </td>
    131- <td>
    132- range
    133- </td>
    134- <td>
    135- PRIMARY,uk_source_id_country_code_pf_listing_logistic_type_platform_type,idx_pf_listing_id,idx_status,idx_source_id_update_time,idx_source_site_status,idx_listing_mercadolibre_optim,idx_pflistingid_sourceid_status_logistictype
    136- </td>
    137- <td>
    138- PRIMARY
    139- </td>
    140- <td>
    141- 8
    142- </td>
    143- <td>
    144- None
    145- </td>
    146- <td>
    147- 8484028
    148- </td>
    149- <td>
    150- 0.03
    151- </td>
    152- <td>
    153- Using where
    154- </td>
    155- </tr>
    156- <tr>
    157- <td>
    158- 1
    159- </td>
    160- <td>
    161- SIMPLE
    162- </td>
    163- <td>
    164- tlvm
    165- </td>
    166- <td>
    167- None
    168- </td>
    169- <td>
    170- ref
    171- </td>
    172- <td>
    173- uk_source_id_pf_listing_id_source_sku,idx_pf_listing_id
    174- </td>
    175- <td>
    176- uk_source_id_pf_listing_id_source_sku
    177- </td>
    178- <td>
    179- 266
    180- </td>
    181- <td>
    182- const,zhcxkj_center_listing_comprehensive.tml.pf_listing_id
    183- </td>
    184- <td>
    185- 1
    186- </td>
    187- <td>
    188- 100
    189- </td>
    190- <td>
    191- None
    192- </td>
    193- </tr>
    194- </tbody>
    195- </table>
    196- <br />
    197- 额外建议:<br />
    198- 索引建议:<br />
    199- 取出表 【t_listing_mercadolibre】 where条件表达式 【is_deleted = 0】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。<br />
    200- <br />
    201- 取出表 【t_listing_mercadolibre】 where条件表达式 【source_id = 18088】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。<br />
    202- <br />
    203- 取出表 【t_listing_mercadolibre】 where条件字段 【status】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。<br />
    204- <br />
    205- <span style="color:green;font-weight:bold;">→ 【t_listing_mercadolibre】表 【id】字段,索引已经存在,无需添加任何索引。</span><br />
    206- <br />
    207- 【t_listing_mercadolibre】表 【id】字段,索引分析:<br />
    208- +------------------------+--------------+---------------+---------------+<br />
    209- | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |<br />
    210- +========================+==============+===============+===============+<br />
    211- | t_listing_mercadolibre | PRIMARY | id | 16943040 |<br />
    212- +------------------------+--------------+---------------+---------------+<br />
    213- <br />
    214- <span style="color:green;font-weight:bold;">→ 【t_listing_variant_mercadolibre】 表,无需添加任何索引。</span><br />
    215- <br />
    216- <br />
  4. 2025-09-09 15:15:34, 由 李乐同 关闭。
    修改了 Bug状态 ,旧值为 "resolved",新值为 "closed"。
    修改了 指派给 ,旧值为 "liletong",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "liletong"。
    修改了 关闭日期,旧值为 "",新值为 "2025-09-09 15:15:34"。
所属项目 技术中心-需求池
所属模块 多平台   mercado
所属计划
所属迭代
Bug类型
严重程度 一般
优先级 P2
Bug状态 已关闭
业务部门 总经办
影响功能
开发责任人 王金锋
测试责任人 郭晗
解决时效 5.6
激活次数 0
激活日期
是否确认 是
当前指派 Closed 于 2025-09-09 15:15:34
截止日期 0000-00-00
上线时间 2025-09-09 15:15:00
上线时效 5.68
操作系统
浏览器
关键词
抄送给
所属迭代
相关需求
相关任务
由谁创建 李乐同 于 2025-09-09 09:34:25
影响环境 生产环境-业务反馈
由谁解决 王金锋 于 2025-09-09 15:10:10
解决版本 主干
解决方案 非BUG-纯属误判
由谁关闭 李乐同 于 2025-09-09 15:15:34
最后修改 李乐同 于 2025-09-09 15:15:34
相关Bug