SQL优化技巧 - 排序方向不同导致索引失效2023年1月15日 · 阅读需 3 分钟PawSQL TeamOptimize your SQL Queries by Clicks!Copyright © 2023 PawSQL 问题定义 ORDER BY 子句中的所有表达式必须按统一的 ASC 或 DESC 方向排序,以便利用索引;如果ORDER BY 语句对多个不同条件使用不同方向的排序无法使用索引。 譬如在TPCH的lineitem的表上创建索引: create index l_partkey_suppkey_idx on lineitem(l_partkey, l_suppkey);
SQL实战经验 - 避免使用Natural Join2023年1月15日 · 阅读需 3 分钟PawSQL TeamOptimize your SQL Queries by Clicks!Copyright © 2023 PawSQL 定义 natural join是一种特殊的等值连接,它可以和内连接、外连接及全连接配合使用,它会自动搜索两张表中所有相同列名和类型的列,并且以这些列为条件进行等值连接。natural join可以简化语句,但隐式连接条件降低代码的可读性,不利于理解表之间的关系,而且容易出现误连接。PawSQL对使用STRAIGHT_JOIN的语句进行了风险提示,以避免其引发的正确性问题。 以tpch库中的lineitem和orders表为例 SELECT *FROM lineitem NATURAL JOIN orders;
SQL实战经验 - 避免使用STRAIGHT_JOIN2023年1月15日 · 阅读需 3 分钟PawSQL TeamOptimize your SQL Queries by Clicks!Copyright © 2023 PawSQL 问题定义 Straight Join是MySQL中的一种表连接方式,它会强制以表的定义顺序来进行表连接,在结果上它等价与内连接。它给予了开发人员对数据库执行SQL的一定的控制能力。但它也失去了优化器带来的进行表连接顺序的优化,需要根据场景谨慎使用。PawSQL对使用STRAIGHT_JOIN的语句进行了风险提示,以避免其引起的性能问题。
SQL实战经验 - 避免在UPDATE/DELETE语句中使用LIMIT2023年1月15日 · 阅读需 2 分钟PawSQL TeamOptimize your SQL Queries by Clicks!Copyright © 2023 PawSQL 问题定义 在UPDATE/DELETE操作使用 LIMIT 子句,它可将会导致主从数据不一致或从库同步中断。 审查预警 PawSQL针对此情况提供相应的SQL审查预警。