|
建立索引和维护索引的开销
最近有一个项目,想用内存数据库,以前对PostgreSQL比较熟悉,于是先做了做实验。
项目里有一个非常巨大的表,会有上亿条的纪录,并且还要每3分钟插入10万条左右的数据。
此外,为了提高查询效率,表上还建有几个索引,一开始是将所有的插入都在一个事务中进行。
在做插入实验的时候,发现了这样的问题:
当表中已经有大量纪录的时候,插入速度就会非常慢,简直无法接受。
如果删除掉索引,那么插入速度就变得非常快了。加上随后的创建索引的时间,比前一种方式快几十倍。
大家都知道维护一个索引是需要时间的,但维护索引的花费不应该比重建索引花费大这么多啊?
eXtremeDB和其他内存数据库在这方面做的怎么样? |
|