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"列にインデックスを追加する方法はありますか?クエリ最適化のヘルプが必要ですか?
11までupdate fa_nls_pd_test set DYNAMIC_TIME_PERIOD = NULL where CAT_NO = 0 and period_year = 201502;
1つのトランザクションcat_noが更新されます: これは、更新クエリです!
テーブルサイズ= 10.2 GB、行= 15百万。
このクエリを実行すると、1年間に1時間以上かかるので、どのようにクエリを最適化できますか?
あなたも 'period_year'列にインデックスを置くと考えていますか? –
@TimBiegeleisenあなたは私の口からそれを取った。頻繁にアクセスされる項目であればCAT_NOでも試すことができるかもしれません –
MySQLの 'explain'機能を見て、どのインデックスが意味があるかを判断するのに役立ちます:https://dev.mysql.com/doc/refman/5.7 /en/explain.html – arkascha