5个真正有效的数据库查询优化技巧

发布: (2025年12月11日 GMT+8 09:55)
2 min read
原文: Dev.to

Source: Dev.to

在多年管理数据库驱动的应用后,我发现查询优化可以决定你的应用性能是好是坏。下面是我经常使用的五个实用技巧。

1. 为外键建立索引

每个外键都应该有索引:

CREATE INDEX idx_user_id ON orders(user_id);

如果没有适当的索引,随着表的增大,JOIN 操作会变得非常慢。

2. 使用 EXPLAIN 了解执行情况

对查询运行 EXPLAIN,查看 MySQL 是如何执行的:

EXPLAIN SELECT * FROM products WHERE category_id = 5;

关注以下内容:

  • 表扫描(不佳)
  • 索引使用(良好)
  • 检查的行数 vs. 返回的行数

3. 只选择需要的列

获取不必要的列会浪费内存和带宽。

// Bad
$query = "SELECT * FROM users";

// Good
$query = "SELECT id, name, email FROM users";

4. 重用连接并批量插入

打开数据库连接代价高;使用持久连接来重用它们:

// Use persistent connections in PHP
$pdo = new PDO($dsn, $user, $pass, [
    PDO::ATTR_PERSISTENT => true
]);

将多条插入合并为批量操作,而不是逐行插入:

// Instead of this
foreach ($items as $item) {
    $db->insert($item);
}

// Do this
$db->insertBatch($items);

这可以让批量操作提速 10–100 倍。

5. 启用 MySQL 的慢查询日志

捕获超过阈值的查询,以便后续分析:

SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;

任何执行时间超过 2 秒的查询都会被记录。

数据库优化是一个持续的过程。从这些基础开始,测量结果并不断迭代。用户会因为更快的响应时间而感激你的努力!

Back to Blog

相关文章

阅读更多 »