Tối ưu bảng wp_options của WordPress [NEW]

Tối ưu lại cơ sở dữ liệu luôn là một trong những việc quan trọng cần làm khi website có quá nhiều dữ liệu và quá nhiều lượt truy cập. Vì bạn biết rằng trang web càng có nhiều người truy cập thì trang web sẽ gửi càng nhiều truy vấn đến cơ sở dữ liệu để lấy dữ liệu ra (chủ yếu là truy vấn). SELECT). Nhưng đã có nhiều câu truy vấn nhưng dữ liệu lại lớn và không được sắp xếp gọn gàng thì việc xử lý các câu truy vấn đó sẽ mất nhiều thời gian hơn.

Ngoài việc dọn dẹp cơ sở dữ liệu mà tôi đã mô tả trong chương trước, chúng ta có một cách khác nhưng rất quan trọng đó là tối ưu hóa bảng. wp_options của cơ sở dữ liệu. Bảng này sẽ chứa tất cả các cài đặt bên trong trang web, bao gồm cài đặt chủ đề và plugin. Điều đó có nghĩa là nếu bạn đã cài đặt nhiều plugin và chủ đề trên trang web của mình, bảng này sẽ rất nặng ngay cả khi bạn đã tắt các plugin hoặc chủ đề đó vì hầu hết các plugin không hỗ trợ “dọn dẹp” chiến trường khi chúng ta tắt nó đi. để sử dụng lại sau này.

Truy vấn gỡ lỗi

Đầu tiên, chúng ta nên xem trực tiếp các truy vấn trên trang web và thời gian thực thi của nó để xem có truy vấn của plugin nào đang chiếm nhiều thời gian hay không. Một cách để thực hiện việc này là sử dụng plugin Query Monitor.

Nhưng trước khi cài đặt nó, bạn bật gỡ lỗi trong wp-config.php lên.

define(‘WP_DEBUG’, true);

Sau đó, trên mỗi trang, bạn sẽ thấy truy vấn của nó bằng cách nhấp vào nút xem gỡ lỗi trong Thanh quản trị.

Tối ưu bảng wp_options của WordPress [NEW]Nhấp và chọn Truy vấn để xem các truy vấn. Bây giờ bạn có thể xem có bao nhiêu truy vấn trên trang đó, mỗi truy vấn mất bao nhiêu thời gian.

truy vấn-giám sát-thời gian truy vấn

Nếu bạn thấy mình có quá nhiều truy vấn trong bảng wp_posts sau đó:

  • Hạn chế sử dụng các truy vấn để lấy các bài báo, bao gồm cả các widget. Chủ đề tin tức thường có rất nhiều truy vấn như thế này.
  • Giới hạn số lượng bài viết hiển thị trên mỗi trang.
  • Bạn cũng có thể thấy truy vấn trong một số plugin. Nếu bạn thấy plugin đó không cần thiết, hãy tắt nó đi.

Tiếp theo bạn click vào menu Debug, chọn Hooks và bạn sẽ thấy có bao nhiêu thành phần được tải như bao nhiêu theme được kích hoạt, bao nhiêu hook trong widget, theme dùng hook gì để thực thi, v.v. và nếu càng giới hạn thì càng tốt .

query-monitor-hooks

Ngoài ra, bạn có thể xem phần PHP Errors để xem PHP có lỗi nào không, nó sẽ cho bạn biết lỗi đó là gì, ở file nào, trong code là bao nhiêu để bạn có thể khắc phục.

Tối ưu hóa bảng wp_options

Cột trụ autoload trong bàn wp_options nghĩa là, hãy để nó xác định xem tùy chọn có được tự động bên ngoài theo mặc định hay không. Có nghĩa là mặc dù các plugin của bạn không dùng nữa nhưng các thiết lập trong cơ sở dữ liệu vẫn còn đó, nó vẫn đang tự động tải, đây là nguyên nhân số một khiến tốc độ truy cập website bị chậm.

Trong bài viết này, các truy vấn SQL được sử dụng. Để chạy truy vấn SQL, hãy truy cập phpMyAdmin -> chọn cơ sở dữ liệu để làm việc và chọn tab SQL. Hoặc nếu bạn không có phpMyAdmin thì hãy đăng nhập vào MySQL Server rồi gõ USE tên_database để chọn cơ sở dữ liệu.

Trước hết, chúng tôi kiểm tra xem bảng wp_options bao nhiêu hàng.

[sql]giải thích SELECT option_name, option_value FROM wp_options WHERE autoload = ‘yes'[/sql]

+------+-------------+---------------+------+---------------+------+---------+------+------+-------------+
| id   | select_type | table         | type | possible_keys | key  | key_len | ref  | rows | Extra       |
+------+-------------+---------------+------+---------------+------+---------+------+------+-------------+
|    1 | SIMPLE      | wp_options | ALL  | NULL          | NULL | NULL    | NULL |  808 | Using where |
+------+-------------+---------------+------+---------------+------+---------+------+------+-------------+

Như bạn có thể thấy, chúng ta có 808 hàng trong bảng wp_options. Bây giờ hãy thử thêm INDEX cho cột tự động tải để xem sự khác biệt.

[sql]ALTER TABLE `wp_options` ADD INDEX (` autoload`);[/sql]

Bây giờ bạn chạy lại truy vấn ở trên để xem liệu nó có giảm số hàng hay không và cột Thêm của bạn sẽ là Sử dụng điều kiện chỉ mục.

+------+-------------+---------------+------+---------------+----------+---------+-------+------+-----------------------+
| id   | select_type | table         | type | possible_keys | key      | key_len | ref   | rows | Extra                 |
+------+-------------+---------------+------+---------------+----------+---------+-------+------+-----------------------+
|    1 | SIMPLE      | wp_options | ref  | autoload      | autoload | 82      | const |  762 | Using index condition |
+------+-------------+---------------+------+---------------+----------+---------+-------+------+-----------------------+

Ngoài ra, tốc độ truy vấn của tôi cũng giảm đi đáng kể.

Trước:

Tối ưu bảng wp_options của WordPress [NEW]Sau khi thêm INDEX

truy vấn-giám sát-sau-chỉ mụcVậy tại sao việc sử dụng INDEX trong MySQL lại giúp bạn giảm thời gian gửi truy vấn?

Hãy tưởng tượng rằng, INDEX giống như việc đánh số từng trang của một cuốn sách. Khi cần tìm một thứ gì đó, bạn chỉ cần lật đến đúng số trang cần tìm thay vì lật từng trang phải không? INDEX trong MySQL cũng vậy, nó sẽ giúp các truy vấn WHERE tìm dữ liệu lấy ra bên ngoài nhanh hơn.

Nếu muốn, bạn có thể thêm INDEX cho các cột post_id và meta_key trong bảng wp_postmeta.

[sql]

ALTER TABLE `wp_postmeta` ADD INDEX (` meta_key`);
ALTER TABLE `wp_postmeta` ADD INDEX (` meta_key`);
[/sql]

Xóa các tùy chọn không sử dụng

Như tôi đã nói ở trên, theo mặc định, bảng có một cột tự động tải, nếu bất kỳ hàng nào có giá trị là có, nó sẽ được gửi ra theo mặc định trong khi WordPress tải trang web của bạn. Nếu bạn sử dụng trang web trong một thời gian dài, đã sử dụng nhiều plugin không còn sử dụng nữa, bạn nên xóa các tùy chọn của nó trong bảng wp_options. Bạn có thể duyệt bảng này và xóa các tùy chọn như tôi đã làm bên dưới, hãy cẩn thận với các tùy chọn mặc định của WordPress (trên các trang đầu tiên).

Xóa các tùy chọn không còn được sử dụng.

Xóa các tùy chọn không còn được sử dụng.

Phần kết

Hiện tại, trong bài viết này, tôi chỉ nói về kiểm soát truy vấn và sử dụng INDEX cho cơ sở dữ liệu WordPress. Nhưng tôi tin rằng với những thủ thuật nhỏ trên đây sẽ giúp website đạt hiệu suất cao hơn rất nhiều, đặc biệt là những website lớn. Hãy nhớ rằng khi sử dụng các plugin, bạn nên chú ý đến các plugin sử dụng nhiều tài nguyên để giảm tải cho cả PHP và MySQL.

Và trong một dịp khác, mình sẽ chia sẻ một kỹ thuật chia tỷ lệ cơ sở dữ liệu mà các trang web lớn thường sử dụng, đó là cân bằng tải với cơ sở dữ liệu trên máy chủ khác.

Đánh giá nội dung này