我有一个应用程序,循环数据库表中的大量记录,并对该数据库中的记录执行一些sql和.Net操作(目前我在Postgresql上使用Castle.ActiveRecord).
我在几个feilds上添加了一些基本的btree索引,正如你所期望的,sql操作的性能大大增加.想要充分利用dbms的性能,我想对我所有项目的索引进行一些更好的教育选择.
我明白,插入时会导致性能下降(因为数据库需要更新索引以及数据),但是我应该在创建数据库索引时考虑哪些建议和最佳实践?如何最好选择一组数据库索引(经验法则)的feilds / fields的组合?
此外,如何最好地选择要用作聚簇索引的索引?而当涉及到访问方法时,在什么条件下,我应该使用一个哈希或一个gist或杜松子酒的btree(还有什么呢?).