这是我的表
CREATE TABLE `fa_nls_og` (
`Incr_Dollar_YAG_pct_Chg` double(50,4) DEFAULT NULL,
`Incr_U_YAG_pct_Chg` double(50,4) DEFAULT NULL,
`Incr_U_YAG_Chg` double(50,4) DEFAULT NULL,
`Incr_EQ_YAG_pct_Chg` double(50,4) DEFAULT NULL,
`Incr_EQ_YAG_Chg` double(50,4) DEFAULT NULL,
`Baseline_EQ_YAG_pct_Chg` double(50,4) DEFAULT NULL,
`Baseline_EQ_YAG_Chg` double(50,4) DEFAULT NULL,
`Baseline_Units_YAG_pct_Chg` double(50,4) DEFAULT NULL,
`Baseline_Units_YAG_Chg` double(50,4) DEFAULT NULL,
`Units_YAG_Period` double(50,4) DEFAULT NULL,
`Units_YAG_pct_Chg` double(50,4) DEFAULT NULL,
`Units_YAG_Chg` double(50,4) DEFAULT NULL,
`PERIOD_YEAR` int(50) DEFAULT NULL,
`CAT_NO` int(10) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (PERIOD_YEAR)
SUBPARTITION BY KEY (CAT_NO) SUBPARTITIONS 12
(PARTITION pytd VALUES LESS THAN (2) ENGINE = InnoDB,
PARTITION p VALUES LESS THAN (200000) ENGINE = InnoDB,
PARTITION p0 VALUES LESS THAN (201401) ENGINE = InnoDB,
PARTITION p2 VALUES LESS THAN (201402) ENGINE = InnoDB,
PARTITION p4 VALUES LESS THAN (201403) ENGINE = InnoDB,
PARTITION p6 VALUES LESS THAN (201404) ENGINE = InnoDB,
PARTITION p8 VALUES LESS THAN (201405) ENGINE = InnoDB,
PARTITION p10 VALUES LESS THAN (201406) ENGINE = InnoDB,
PARTITION p12 VALUES LESS THAN (201407) ENGINE = InnoDB,
PARTITION p14 VALUES LESS THAN (201408) ENGINE = InnoDB,
PARTITION p16 VALUES LESS THAN (201409) ENGINE = InnoDB,
PARTITION p18 VALUES LESS THAN (201410) ENGINE = InnoDB,
PARTITION p20 VALUES LESS THAN (201411) ENGINE = InnoDB,
PARTITION p22 VALUES LESS THAN (201412) ENGINE = InnoDB,
PARTITION p24 VALUES LESS THAN (201501) ENGINE = InnoDB,
PARTITION p26 VALUES LESS THAN (201502) ENGINE = InnoDB,
PARTITION p28 VALUES LESS THAN (201503) ENGINE = InnoDB,
PARTITION p30 VALUES LESS THAN (201504) ENGINE = InnoDB,
PARTITION p32 VALUES LESS THAN (201505) ENGINE = InnoDB,
PARTITION p34 VALUES LESS THAN (201506) ENGINE = InnoDB,
PARTITION p36 VALUES LESS THAN (201507) ENGINE = InnoDB,
PARTITION p38 VALUES LESS THAN (201508) ENGINE = InnoDB,
PARTITION p40 VALUES LESS THAN (201509) ENGINE = InnoDB,
PARTITION p42 VALUES LESS THAN (201510) ENGINE = InnoDB,
PARTITION p44 VALUES LESS THAN (201511) ENGINE = InnoDB,
PARTITION p46 VALUES LESS THAN (201512) ENGINE = InnoDB,
PARTITION p48 VALUES LESS THAN (201601) ENGINE = InnoDB,
PARTITION p50 VALUES LESS THAN (201602) ENGINE = InnoDB,
PARTITION p52 VALUES LESS THAN (201603) ENGINE = InnoDB,
PARTITION p54 VALUES LESS THAN (201604) ENGINE = InnoDB,
PARTITION p56 VALUES LESS THAN (201605) ENGINE = InnoDB,
PARTITION p58 VALUES LESS THAN (201606) ENGINE = InnoDB,
PARTITION p60 VALUES LESS THAN (201607) ENGINE = InnoDB,
PARTITION p62 VALUES LESS THAN (201608) ENGINE = InnoDB,
PARTITION p64 VALUES LESS THAN (201609) ENGINE = InnoDB,
PARTITION p66 VALUES LESS THAN (201610) ENGINE = InnoDB,
PARTITION p68 VALUES LESS THAN (201611) ENGINE = InnoDB,
PARTITION p70 VALUES LESS THAN (201612) ENGINE = InnoDB,
PARTITION p72 VALUES LESS THAN (201701) ENGINE = InnoDB,
PARTITION p74 VALUES LESS THAN (201702) ENGINE = InnoDB,
PARTITION p76 VALUES LESS THAN (201703) ENGINE = InnoDB,
PARTITION p78 VALUES LESS THAN (201704) ENGINE = InnoDB,
PARTITION p80 VALUES LESS THAN (201705) ENGINE = InnoDB,
PARTITION p82 VALUES LESS THAN (201706) ENGINE = InnoDB,
PARTITION p84 VALUES LESS THAN (201707) ENGINE = InnoDB,
PARTITION p86 VALUES LESS THAN (201708) ENGINE = InnoDB,
PARTITION p88 VALUES LESS THAN (201709) ENGINE = InnoDB,
PARTITION p90 VALUES LESS THAN (201710) ENGINE = InnoDB,
PARTITION p92 VALUES LESS THAN (201711) ENGINE = InnoDB,
PARTITION p94 VALUES LESS THAN (201712) ENGINE = InnoDB,
PARTITION p96 VALUES LESS THAN (201801) ENGINE = InnoDB,
PARTITION p98 VALUES LESS THAN (201802) ENGINE = InnoDB,
PARTITION p100 VALUES LESS THAN (201803) ENGINE = InnoDB,
PARTITION p102 VALUES LESS THAN (201804) ENGINE = InnoDB,
PARTITION p104 VALUES LESS THAN (201805) ENGINE = InnoDB,
PARTITION p106 VALUES LESS THAN (201806) ENGINE = InnoDB,
PARTITION p108 VALUES LESS THAN (201807) ENGINE = InnoDB,
PARTITION p110 VALUES LESS THAN (201808) ENGINE = InnoDB,
PARTITION p112 VALUES LESS THAN (201809) ENGINE = InnoDB,
PARTITION p114 VALUES LESS THAN (201810) ENGINE = InnoDB,
PARTITION p116 VALUES LESS THAN (201811) ENGINE = InnoDB,
PARTITION p118 VALUES LESS THAN (201812) ENGINE = InnoDB,
PARTITION p144 VALUES LESS THAN (201901) ENGINE = InnoDB,
PARTITION p146 VALUES LESS THAN (201902) ENGINE = InnoDB,
PARTITION p148 VALUES LESS THAN (201903) ENGINE = InnoDB,
PARTITION p150 VALUES LESS THAN (201904) ENGINE = InnoDB,
PARTITION p152 VALUES LESS THAN (201905) ENGINE = InnoDB,
PARTITION p154 VALUES LESS THAN (201906) ENGINE = InnoDB,
PARTITION p156 VALUES LESS THAN (201907) ENGINE = InnoDB,
PARTITION p158 VALUES LESS THAN (201908) ENGINE = InnoDB,
PARTITION p160 VALUES LESS THAN (201909) ENGINE = InnoDB,
PARTITION p162 VALUES LESS THAN (201910) ENGINE = InnoDB,
PARTITION p164 VALUES LESS THAN (201911) ENGINE = InnoDB,
PARTITION p166 VALUES LESS THAN (201912) ENGINE = InnoDB,
PARTITION p120 VALUES LESS THAN (202001) ENGINE = InnoDB,
PARTITION p122 VALUES LESS THAN (202002) ENGINE = InnoDB,
PARTITION p124 VALUES LESS THAN (202003) ENGINE = InnoDB,
PARTITION p126 VALUES LESS THAN (202004) ENGINE = InnoDB,
PARTITION p128 VALUES LESS THAN (202005) ENGINE = InnoDB,
PARTITION p130 VALUES LESS THAN (202006) ENGINE = InnoDB,
PARTITION p132 VALUES LESS THAN (202007) ENGINE = InnoDB,
PARTITION p134 VALUES LESS THAN (202008) ENGINE = InnoDB,
PARTITION p136 VALUES LESS THAN (202009) ENGINE = InnoDB,
PARTITION p138 VALUES LESS THAN (202010) ENGINE = InnoDB,
PARTITION p140 VALUES LESS THAN (202011) ENGINE = InnoDB,
PARTITION p142 VALUES LESS THAN (202012) ENGINE = InnoDB
) */
更新其中一个期间年份和catno
的列首次更新需要5秒,第二次更新需要30分钟,有人可以帮忙吗?
答案 0 :(得分:0)
SUBPARTITIONs
没有任何性能优势。DOUBLE(m,n)
它会导致额外的舍入。使用普通DOUBLE
(带有16位有效数字)或DECIMAL(m,n)
,使用合理的m和n 值。 DOUBLE
(有或没有(m,n))需要8个字节; DECIMAL(50,4)
大约需要25个字节!int(50)
- (50)
没有任何意义。 INT
总是需要4个字节。由于它似乎是YEAR
,因此请使用该数据类型(仅2个字节)。PRIMARY KEY
INDEX(period_year, catno)
。在完成所有这些之后,摆脱所有分区 - 它没有提供任何有用的东西(基于你到目前为止所说的)。 INDEX
将为您提供您所缺少的速度。我的其他提示以其他各种方式提供帮助,其中一些提示可以直接或间接地帮助(例如,小=更快)。