通常来说,一个数据表会因为不断的插入数据,最后变得很臃肿。所以需要根据一些规则将这些数据进行分表。
整体实验下来,有些点是我之前没想到的,但结论是:分表有用,而且必须。
测试的样本总数1亿2千万左右,进行100分表后,每张表大约120万数据。
为了“公平”起见,测试只在单机上进行,这样数据库的性能是完全一致的(8G内存限制, CPU相当于最高4C),差别只在于是否分表,本次默认采用100个分表(太多也没有意义,CPU性能不支持)。每条数据的大小适中,1k左右。
在单次写入百万条数据时发现,不分表表的操作直接失败了。观察内存的变化发现,大概是操作过程中形成的数据操作缓存过大,内存数据激增了几个G之后,操作失败。在限定了并发的情况下,每秒插入数据随着并发增多速度一直在提升,最后达到了5万+/秒的插入速度。
在每次插入10万条数据时,单次操作成功,耗时5.3S。分表操作大约是2.2S。
所以: