SQL Performance Explained: The Where Clause
在前面一篇文章,介绍了索引的结构,并解释了慢索引的原因。 下面会介绍如何发现并避免这些问题,先从 where 语句开始。 where 语句定义了 SQL 的搜索条件,因此它属于索引的核心功能范畴:快速寻找数据。 即使 where 语句对性能有很大影响,但它常常被随意使用,导致数据库不得不扫描索引的大部分内容。 结果导致:一个编写不当的 where 子句是导致查询缓慢的首要因素。 本章解释不同运算符如何影响索引的使用,以及如何确保索引能适用于尽可能多的查询。 The Equality Operator 等号是 SQL 中最简单也最常用的符号。 影响性能的索引错误仍然非常普遍,尤其是结合多个条件的 where 子句中,这种错误尤为常见。 本章展示如何验证索引的使用,并解释如何通过连接索引 combined conditions 来优化组合条件。 Primary Keys 下面从最简单的 where 子句开始:主键查询。 这里使用 EMPLOYEES 表做示例: CREATE TABLE employees ( employee_id NUMBER NOT NULL, first_name VARCHAR(1000) NOT NULL, last_name VARCHAR(1000) NOT NULL, date_of_birth DATE NOT NULL, phone_number VARCHAR(1000) NOT NULL, CONSTRAINT employess_pk PRIMARY KEY (employee_id) ); 数据库会自动为主键创建索引,这意味着 employee_id 列会有一个索引,即使没有 create index 语句。 ...