我的网站在流量和数据库设计的复杂性方面都在不断扩展。我一直作为开发人员先做过工作。最重要的是,除了我需要做的运行代码之外,从来没有真正成为数据库管理员。这需要改变 - 我需要提高数据库方面的效率。
举一个模糊的例子,我正在寻找如何学习:
我发现的大多数资源要么更多地针对SQL的基础知识(“这是一个SELECT查询,一个JOIN等”),要么主要关注数据库之外的性能问题。
所以,我知道这有点模糊 - 但我应该在哪里确保我的数据库是以最有效的方式设计的。积分方式可能?
答案 0 :(得分:2)
答案 1 :(得分:1)
我建议阅读一些性能调整。它非常专业,具体取决于您使用的数据库后端。这里有一些需要考虑的书:
答案 2 :(得分:1)
首先,我建议学习如何使用EXPLAIN以及它的输出意味着什么。在最常见的查询上运行它并研究输出。查询是否使用合理的索引?他们在使用索引吗?一眼看上去非常简单的查询可能最终成本很高。
接下来,我建议您找到最慢的查询。 Postgres(例如)具有一项功能,允许您为运行时间超过N秒的所有查询记录SQL源。它们是否因为没有索引,非常复杂或者运行大量数据而变慢?
第三,我将查看特定查询的运行次数。您是否正在使用数据库存储静态数据,并反复敲击表以获取永远不会更改的记录?你可以把结果缓存到某个地方。