数据库性能

在设计数据库时,必须确保数据库快速而正确地执行所有重要的函数。某些性能问题可以在数据库投入使用之后进行解决。但是,其他性能问题则可能是由于数据库设计较差导致的,并且只能通过更改数据库的结构和设计来解决。

在设计和实施数据库时,应该标识出数据库中较大的表和数据库将要执行的较为复杂的进程。在设计这些表时,您还应专门考虑其性能问题。此外,还应考虑能访问数据库的用户数的增加对性能的影响。

更改设计使性能提高的示例如下:

  • 如果必须对有成千上万行的表编制摘要作为日常报表,可以向(包含预先聚合的仅供报表使用的数据的)表添加一列或多列。

  • 数据库可能被过度规范化。这意味着数据库是由若干较小的相关的表定义的。当数据库处理这些表中的数据时,数据库必须执行非常多的工作量才能合并相关数据。这种额外的处理会降低数据库性能。在这种情况下,适当降低数据库规范化程度以简化复杂处理可以提高性能。

硬件考虑事项

通常,数据库越大,硬件要求越多。但是,其他决定因素还包括并发用户和会话的数量、事务吞吐量,以及数据库内的操作类型。例如,对于包含不常更新的学校图书馆数据的数据库,其硬件要求通常低于包含大公司经常分析的销售、产品和客户信息的 1 TB 数据仓库。除了磁盘存储要求,数据仓库还需要更多的内存和更快的处理器,以便能够在内存中缓存更多数据,使引用大量数据的查询处理得更快。

I/O 子系统或存储引擎是所有关系数据库的关键组件,需要进行大量的计划工作。成功的数据库实现通常要求在项目的初期阶段进行仔细的规划。此规划应考虑下列事项:

  • 使用哪种类型的磁盘硬件,如 RAID(独立磁盘冗余阵列)设备。有关详细信息,请参阅关于基于硬件的解决方案

  • 如何将数据放置到磁盘上。有关详细信息,请参阅使用文件和文件组

  • 采用哪种索引设计来提高访问数据时的查询性能。有关详细信息,请参阅设计索引

  • 如何正确设置所有配置参数,以使数据库正常运行。有关详细信息,请参阅优化服务器性能