我在公司中多次设计数据库。为了提高数据库的性能,我只寻找标准化和索引。
如果要求您提高数据库的性能,该数据库包含大约250个表以及一些具有数百万个记录的表,那么您将寻找什么不同的东西?

提前致谢。

最佳答案

优化逻辑设计

逻辑级别是关于查询和表本身的结构。首先尝试最大程度地发挥这一作用。目标是在逻辑级别上访问尽可能少的数据。

  • 拥有最高效的SQL查询
  • 设计支持应用程序需求(例如列的类型等)的逻辑架构
  • 设计折衷方案以比其他
  • 更好地支持某些用例
  • 关系约束
  • 规范化

  • 优化物理设计

    物理级别处理非逻辑方面的考虑,例如索引的类型,表的参数等。目标是优化始终是瓶颈的IO。调整每张 table 以适应需要。小型表可以永久地加载到DBMS缓存中,写率低的表可以与更新率高的表进行不同的设置,以减少磁盘空间等。根据查询的不同,可以使用不同的索引等。您可以通过物化 View 等透明地对非规范化数据进行标准化处理
  • 表参数(分配大小等)
  • 索引(组合,类型等)
  • 系统范围的参数(高速缓存大小等)
  • 分区
  • 反规范化

  • 首先尝试改进逻辑设计,然后再改进物理设计。 (但是,两者之间的界限很模糊,因此我们可以对我的分类进行争论)。

    优化维护

    必须正确操作数据库,以保持尽可能高的效率。这包括一些可能会对性能产生影响的维护任务,例如
  • 保持统计信息最新
  • 定期对关键表重新排序
  • 磁盘维护
  • 所有系统内容都包含一个摇动
  • 的服务器

    关于sql - 如何提高数据库的性能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2007575/

    10-11 03:22
    查看更多