有人能告诉我数据库调优和数据库查询优化之间的确切区别吗?
我已阅读 Wikipedia 上的以下链接:
http://en.wikipedia.org/wiki/Query_optimization
http://en.wikipedia.org/wiki/Database_tuning
据我了解,似乎数据库调优不过是数据库查询优化。我还是一头雾水
两者之间究竟有什么区别?
有人能告诉我数据库调优和数据库查询优化之间的确切区别吗?
我已阅读 Wikipedia 上的以下链接:
http://en.wikipedia.org/wiki/Query_optimization
http://en.wikipedia.org/wiki/Database_tuning
据我了解,似乎数据库调优不过是数据库查询优化。我还是一头雾水
两者之间究竟有什么区别?
数据库调优是指对数据库本身进行调优。它访问存储和内存。各种缓冲区和运行时参数的组织。以及使用索引优化模式、(反)规范化、模式对象上的存储参数等等。
查询优化一次只关注一条语句。它可能涉及重组语句、创建索引和物化视图、添加提示和更新统计信息。
虽然两者之间存在重叠(当数据库性能更好时,单个语句也可能更快),但它们的目标通常相互矛盾。如果您一次调整一条语句,您可能会创建大量索引,但每个索引都会为数据库增加一点额外的负载来写入该表,因此整体性能实际上可能会受到影响。
我会说查询优化是数据库调优的一个子集。如果您查看任何有关性能调优的通用书籍,您通常只会看到与调优查询相关的一章。其他章节与分区、索引、负载测试、锁定和阻塞、硬件、内存、模式等有关。
我了解查询优化与查询本身有关,因此例如,您可以改进实现不佳的联接,删除不必要的字段等。仅会影响正在分析的查询的事情。
数据库调优涉及整个服务器,因为索引、查询负载,甚至与 IO 相关的事情,例如将数据库分区或拆分为不同磁盘中的不同文件组。