有人能为我提供数据库调优和数据库查询优化之间的确切区别吗?
我已阅读维基百科上的以下链接:
http://en.wikipedia.org/wiki/Query_optimization
http://en.wikipedia.org/wiki/Database_tuning
根据我的理解,似乎数据库调优只不过是数据库查询优化。我还是很困惑
这两者究竟有什么区别?
答案 0 :(得分:2)
数据库调优是指调整数据库本身。它可以访问存储和内存。组织各种缓冲区和运行时参数。除了使用索引优化模式,(de)规范化,模式对象上的存储参数等等。
查询优化只能一次用一个语句来识别。它可能涉及重组法规,创建索引和物化视图,添加提示和更新统计信息。
虽然两者之间存在重叠(当数据库表现更好时,单个陈述也可能更快)但通常它们具有相反的目标。如果您一次调整一个语句,则可能会创建大量索引,但每个索引会对数据库施加一点额外负载以便写入该表,因此整体性能可能会受到影响。
答案 1 :(得分:1)
我想说查询优化是数据库调优的一个子集。如果您查看有关性能调优的任何一般书籍,通常只会看到与调优查询相关的一章。其他章节涉及分区,索引,负载测试,锁定和阻塞,硬件,内存,架构等。
答案 2 :(得分:1)
我知道查询优化与查询本身有关,因此,例如,您可以改进实现不良的连接,删除不必要的字段等等。这些事情只会影响正在分析的查询。
数据库调优涉及整个服务器,因为索引,查询加载,甚至与IO相关的事情,例如分区或将数据库拆分为不同磁盘中的不同文件组,例如。