假设您有一个非常大的数据库,为了简化起见,假设它由一个主表组成,您将使用一个(且只有一个)主键字段 - pk
进行查找。
考虑到所有查找基本上都是 SELECT * FROM table_name WHERE pk=someKeyValue
,优化此数据库以实现最快查找的最佳方法是什么?
编辑:只是一些更多的细节 - INSERT
s 和 UPDATE
s 将非常不频繁,所以我不介意牺牲性能以获得更好的查找性能。
此外,集群似乎是可行的方法。您有任何我可以通过这种方法实现的性能提升示例吗?这究竟是如何完成的(在任何类型的数据库上)?
最佳答案
如果主键是集群的,那么你不会更快。
如果不是聚簇,而且你的表的列数比较少,那么理论上你可以创建一个覆盖索引来加速查询。但是,这会抵消具有非集群主键会给您带来的任何插入/更新性能增强。
如果您的主键是一个始终递增的字段(例如 SQL Server 标识,或从 Oracle 中的序列生成),那么聚簇主键无论如何都没有缺点。
关于database - 最佳优化主键查询的大型数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/685882/