mysql创建表过程中OOM

条件:mysql 5.5,内存8G,innodb,发现导入表结构过程中内存蹭蹭蹭往上涨一直打到上限后OOM,查看SQL文件发现创建语句都是分区表,大概是500张,每张表36个分区

现象:sql文件有多个,当开始执行第一个时,内存就一直往上涨,执行完以后也不会释放,当执行到后面的sql文件就oom了

原因猜测:

原因1:打开的文件句柄数量太多,一个36分区的innodb表需要38个句柄(一个frm文件,一个par文件),500个表就是将近2w了

原因2:information_schema库里的memory引擎表占用的内存变大很多

但是这两个原因,我都不清楚该怎么去验证.....

后来的解决方案:改为250张表,每个表12个分区,相当于是原来的六分之一,导入成功后内存占用在3G左右


你可能感兴趣的:(mysql创建表过程中OOM)