一直好奇存储大小相同的记录,es和mysql谁占用存储空间更大呢。虽然按道理来看应该是mysql,但一直没有亲自尝试,总还是心里感觉不那么踏实。
所以今天做一个测试,看看到底实际情况怎么样?
关于在二者的数据存储,有下面一个大概的说明,可能不够准确,但我只知道这么多:
1、ES先将数据存到内存,再通过队列的形式写到磁盘;虽然mysql也有内存模式,但是在大多数实际应用中我们仍然使用的传统模式,所以在并发写入方面,es要优于mysql。
2、ES存储的数据是经过压缩的。在实际测试中笔者发现6千条记录并不比5千条记录所占用的磁盘空间大。
3、关于mysql,每条索引的长度是和你创建列的时候制定的长度相同的。比如你创建varchar(100),当你在该列上创建索引,那么索引的长度则是102字节,因为长度超过64字节则会额外增加2字节记录索引的长度。
4、在这个测试中es未做分词,仅用于数据存储。
测试机硬件配置:
CPU |
I7 8核心 |
内存 |
12G | <