Giảm số truy vấn SQL trên WordPress bằng các mẹo nhỏ

Nếu bạn đang dùng theme hoặc plugin tự viết (hoặc đã tùy biến), việc tối ưu số lượng truy vấn SQL là điều không thể bỏ qua. Một số mẹo nhỏ dưới đây có thể giúp bạn giảm đáng kể số query mà vẫn giữ nguyên tính năng cho website.

Giảm số truy vấn SQL trên WordPress bằng các mẹo nhỏ

1. Sử dụng get_posts() thay cho WP_Query nếu không cần phân trang

Nếu bạn chỉ cần lấy danh sách bài viết mà không cần phân trang, hãy dùng get_posts() vì nó nhanh hơn và sinh ít truy vấn hơn.

$posts = get_posts([
    'post_type' => 'post',
    'numberposts' => 5,
    'fields' => 'ids' // Tùy chọn này còn giúp tối ưu hơn nữa
]);

2. Tránh sử dụng query_posts()

query_posts() không chỉ làm tăng số truy vấn mà còn dễ gây lỗi nếu dùng sai. Hãy ưu tiên WP_Query hoặc get_posts().

3. Tắt chức năng post revisions nếu không cần thiết

define('WP_POST_REVISIONS', false); // Thêm vào wp-config.php

4. Cache kết quả truy vấn bằng transient hoặc wp_cache_set()

Nếu bạn có truy vấn nặng (ví dụ lấy danh sách bài hot), hãy cache kết quả thay vì query lại mỗi lần load trang.

$posts = get_transient('top_viewed_posts');
if (!$posts) {
    $posts = get_posts([
        'post_type' => 'post',
        'orderby' => 'meta_value_num',
        'meta_key' => 'views',
        'numberposts' => 5
    ]);
    set_transient('top_viewed_posts', $posts, HOUR_IN_SECONDS);
}

5. Tránh dùng hàm như get_the_category() trong vòng lặp

Các hàm như get_the_category(), get_the_tags(), get_post_meta()… nên tránh gọi nhiều lần trong vòng lặp. Nếu cần, hãy gọi một lần duy nhất và xử lý sau.

6. Xóa widget, plugin hoặc tính năng không dùng đến

Các widget và plugin thường thêm truy vấn không cần thiết. Hãy tắt hoặc gỡ bỏ chúng nếu không dùng.

7. Tắt các đoạn load thêm như oEmbed, Emoji, Dashicons nếu không cần

remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_resource_hints', 2);
remove_action('wp_print_styles', 'print_emoji_styles');

Kết luận

Chỉ với vài mẹo nhỏ, bạn có thể giảm từ 20–50% số lượng truy vấn SQL trong WordPress. Điều này giúp site nhẹ hơn, phản hồi nhanh hơn và cải thiện trải nghiệm người dùng mà không cần cài thêm plugin nào.

Bình Luận


  • Không có bình luận.