需要查询优化方面的帮助?

时间:2017-06-27 06:23:08

标签: mysql

CREATE TABLE fa_nls_pd_test ( 
MKT varchar(100) DEFAULT NULL, 
PROD varchar(1000) DEFAULT NULL, 
PRODUCT_LEVEL varchar(100) DEFAULT NULL, 
CAT_NO int(10) DEFAULT NULL, 
DYNAMIC_TIME_PERIOD varchar(100) DEFAULT NULL, 
PRODUCT_LEVEL_DIST varchar(100) DEFAULT NULL, 
PRODUCT_LEVEL_ACV_TREND varchar(100) DEFAULT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

如何将索引添加到“CAT_NO”列? 这是更新查询:

update fa_nls_pd_test set DYNAMIC_TIME_PERIOD = NULL where CAT_NO = 0 and period_year = 201502;

一个事务cat_no到11将更新!

表大小= 10.2 GB,行= 15百万。

当我运行此查询时,我需要花费1个多小时才能完成一个句点年度,如何优化查询?

1 个答案:

答案 0 :(得分:0)

请检查: 专栏" period_year"在此表中不存在。

如果您的表中有period_year列,请尝试复合索引:

alter table fa_nls_pd_test add unique index(CAT_NO,period_year);

复合索引文档:https://dev.mysql.com/doc/refman/5.7/en/multiple-column-indexes.html