database - 最佳优化主键查询的大型数据库

标签 database performance database-design

假设您有一个非常大的数据库,为了简化起见,假设它由一个主表组成,您将使用一个(且只有一个)主键字段 - pk 进行查找。

考虑到所有查找基本上都是 SELECT * FROM table_name WHERE pk=someKeyValue,优化此数据库以实现最快查找的最佳方法是什么?

编辑:只是一些更多的细节 - INSERTs 和 UPDATEs 将非常不频繁,所以我不介意牺牲性能以获得更好的查找性能。

此外,集群似乎是可行的方法。您有任何我可以通过这种方法实现的性能提升示例吗?这究竟是如何完成的(在任何类型的数据库上)?

最佳答案

如果主键是集群的,那么你不会更快。

如果不是聚簇,而且你的表的列数比较少,那么理论上你可以创建一个覆盖索引来加速查询。但是,这会抵消具有非集群主键会给您带来的任何插入/更新性能增强。

如果您的主键是一个始终递增的字段(例如 SQL Server 标识,或从 Oracle 中的序列生成),那么聚簇主键无论如何都没有缺点。

关于database - 最佳优化主键查询的大型数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/685882/

相关文章:

java - 当多个java客户端访问数据库时确保数据完整性

c++ - 在 SQLite 中存储日期和计算年龄

sql - BETWEEN 子句与 <= AND >=

c++ - WebKit 中的多进程(或等效的)

php - Laravel 在查询时从数据库中的字符串中获取整数值

mysql - 小部件驱动站点的数据库架构建议

sql - 来自复合键的索引是否足够?

php - 从其他用户领域生成盐

mysql - 没有两行不同的表具有相同的主键?

Mysql (SQL RDB) 与 MongoDB (NoSQL) 用于存储/查询 GET 请求中的 url 参数