数据库查询优化器的艺术

李海翔
推荐序一随着数据库系统应用的广泛和深入,特别是近年来实际应用中数据库数据量不断增长,形成了所谓的海量数据,进一步的,现在人人都在讲的大数据时代已经到来。数据库系统的性能提升在传统数据库应用中同样受到现实的挑战。对于一个选定的数据库管理系统(DBMS)产品,数据库系统性能的表现可以有很大差异,它和DBMS参数的选择、数据库模式的设计、应用系统的设计、软硬件环境的配置等多个因素密切相关。这就对数据库管理员(即DBA)、应用系统分析和设计人员提出了要求,要求他们能够根据实际的应用环境、应用需求结合DBMS查询优化技术找到提升系统性能的方法或解决方案。数据库查询优化技术一直是DBMS实现技术中的精华,也是难点和重点。数据库领域广大的研究工作者和实际开发者几十年来一直对查询优化技术孜孜不倦地探索着,更快、更好、更有效,这种精神使得查询优化技术不断推陈出新,形成了较为完善的优化技术体系,包括基于语法的、基于语义的、基于规则的、基于代价的等多角度、多方面的优化技术。对于广大的工程第一线的技术人员、对于DBMS开发设计人员、对于数据管理领域的学生来说,仅了解查询优化技术的原理是不够的,还必须从工程实践的角度入手,把DBMS查询优化基本原理和实现代码结合起来,才能真正掌握DBMS查询优化技术,才能运用掌握的技术解决实际系统中性能提升的问题。本书以PostgreSQL和MySQL两大开源DBMS查询优化器的实现为蓝本,介绍和分析了它们的实现原理、实现过程,帮助读者深入理解和掌握数据库查询优化的核心技术,在DBMS调优过程中不仅掌握怎么调优而且掌握为什么可以调优。本书作者努力把数据库查询优化原理、查询优化引擎源码实现和SQL优化工程实践相结合,这是本书的特色,期望本书能成为读者的良师益友。王珊中国人民大学信息学院教授/博士生导师教育部数据工程与知识工程重点实验室学术委员会副主任 推荐序二Pos…