2

有人能告诉我数据库调优和数据库查询优化之间的确切区别吗?

我已阅读 Wikipedia 上的以下链接:

http://en.wikipedia.org/wiki/Query_optimization

http://en.wikipedia.org/wiki/Database_tuning

据我了解,似乎数据库调优不过是数据库查询优化。我还是一头雾水

两者之间究竟有什么区别?

4

3 回答 3

5

数据库调优是指对数据库本身进行调优。它访问存储和内存。各种缓冲区和运行时参数的组织。以及使用索引优化模式、(反)规范化、模式对象上的存储参数等等。

查询优化一次只关注一条语句。它可能涉及重组语句、创建索引和物化视图、添加提示和更新统计信息。

虽然两者之间存在重叠(当数据库性能更好时,单个语句也可能更快),但它们的目标通常相互矛盾。如果您一次调整一条语句,您可能会创建大量索引,但每个索引都会为数据库增加一点额外的负载来写入该表,因此整体性能实际上可能会受到影响。

于 2012-05-29T16:02:04.253 回答
1

我会说查询优化是数据库调优的一个子集。如果您查看任何有关性能调优的通用书籍,您通常只会看到与调优查询相关的一章。其他章节与分区、索引、负载测试、锁定和阻塞、硬件、内存、模式等有关。

于 2012-05-29T15:54:09.450 回答
1

我了解查询优化与查询本身有关,因此例如,您可以改进实现不佳的联接,删除不必要的字段等。仅会影响正在分析的查询的事情。

数据库调优涉及整个服务器,因为索引、查询负载,甚至与 IO 相关的事情,例如将数据库分区或拆分为不同磁盘中的不同文件组。

于 2012-05-29T15:59:43.283 回答