数据库SQL语句优化是提高数据库查询性能的关键措施之一。本篇文章将分享一些优化SQL查询的技巧和注意事项。
子查询方式:
SELECT * FROM orders WHERE customer_id IN (SELECT customer_id FROM customers WHERE last_name='Smith');
JOIN方式:
SELECT orders.* FROM orders JOIN customers ON orders.customer_id=customers.customer_id WHERE customers.last_name='Smith';
索引覆盖查询是指查询的返回结果和数据都可以只从到了索引中获取,而不额外的访问数据表本身。
当表中的某一列被索引后,只查询该列数据会在索引上执行,并返回从索引中读取的数据。因此,通过只查询该列并限制所需返回列,可以对查询优化产生影响。
在以下示例中,对只在索引上执行的查询使用了explain,以确定是否使用可覆盖索引:
EXPLAIN SELECT name FROM users WHERE user_id = 10;
在结果集中,如果Extra列中存在Using index,则使用了索引覆盖。