如何提高文本列索引的插入速度
问题描述:
我为我们的项目使用Postgresql数据库并进行一些性能测试。我们需要插入数百万条带有索引列的记录。我们有5列在表中。我在整数上创建索引只有性能很好,但是当我在文本列上创建索引时,性能也降低了1/8倍。我的问题是,如何在文本列上使用索引插入数据时提高性能?如何提高文本列索引的插入速度
答
简短回答是你不能。
众所周知,关于分贝列添加索引就像是一个2双刃剑:
- 上一个(正)方面,它增加了改进的速度给你读查询
- 另一方面,它增加了性能损失
insert/update/delete
操作和数据会占用更多一点的磁盘空间
一个可能的解决办法是使用一些全文搜索引擎喜欢Sphinx这将索引文本实体在DB
谢谢!如果我错了,请纠正我。全文搜索引擎用于提高读取查询的性能。这对提高写入性能无济于事。 – Saurabh 2012-01-30 10:51:03
的确如此 - 但是你可以保留你的桌子,这个桌子底下有很重的插入物,基本上没有任何索引(当然除了PK) – 2012-01-30 10:53:33
所以,你的数据库表没有索引 - 这保证了快速的插入速度 - 而你将使用Sphinx或SOLR(全文搜索引擎)来查询 – 2012-01-30 10:54:55