Bộ nhớ cache truy vấn MySQL lưu trữ kết quả truy vấn của các truy vấn thường xuyên và được chạy gần đây để chúng có thể được trả lại nhanh chóng mà không cần xử lý mọi thứ từ đầu. Chúng rất hữu ích trong việc cải thiện tốc độ truy vấn và hiệu suất cơ sở dữ liệu. Dưới đây là các bước để bật bộ đệm truy vấn MySQL cho cơ sở dữ liệu của bạn, đặt kích thước bộ đệm MySQL và tắt bộ đệm truy vấn. Xin lưu ý , Bộ đệm truy vấn MySQL đã không được chấp nhận trong MySQL 5.7 và bị loại bỏ trong MySQL 8.0.
Cách kích hoạt bộ nhớ cache truy vấn MySQL
Đây là cấu hình bộ đệm truy vấn MySQL cho cơ sở dữ liệu của bạn.
1. Kiểm tra tính khả dụng
Đăng nhập vào MySQL và chạy lệnh sau để kiểm tra xem bộ đệm truy vấn MySQL có khả dụng cho cơ sở dữ liệu của bạn hay không.
mysql> SHOW VARIABLES LIKE 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+
Nếu bạn nhận được kết quả là CÓ, điều đó có nghĩa là cơ sở dữ liệu của bạn hỗ trợ bộ đệm truy vấn.
Phần thưởng đọc:Cách bật nhật ký truy vấn chậm MySQL
2. Các biến bộ nhớ đệm truy vấn mặc định
Bộ nhớ cache truy vấn MySQL được kiểm soát bởi nhiều biến. Chạy lệnh sau để xem các giá trị mặc định của chúng trước, trước khi thay đổi chúng.
mysql> show variables like 'query_cache_%' ;
Bạn sẽ thấy kết quả sau
+------------------------------+----------+ | Variable_name | Value | +------------------------------+----------+ | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 16777216 | | query_cache_type | OFF | | query_cache_wlock_invalidate | OFF | +------------------------------+----------+
Hãy để chúng tôi xem xét các biến bộ nhớ cache truy vấn ở trên,
- query_cache_limit - kích thước tối đa của kết quả truy vấn có thể được lưu vào bộ nhớ đệm
- query_cache_min_res_result - MySQL lưu trữ kết quả truy vấn thành các khối. Đây là kích thước tối thiểu của mỗi khối.
- query_cache_size - cho biết tổng dung lượng bộ nhớ được phân bổ cho MySQL cache.
- query_cache_type - cài đặt này thành 0 hoặc TẮT sẽ tắt bộ nhớ cache truy vấn MySQL. đặt nó thành 1 sẽ bật bộ nhớ cache truy vấn.
- query_cache_wlock_invalidate - xác định xem MySQL có nên tìm nạp kết quả từ bộ nhớ đệm hay không nếu bảng bên dưới bị khóa.
Phần thưởng đọc:5 công cụ giám sát MySQL hàng đầu
3. Bật bộ nhớ cache truy vấn MySQL
Đăng xuất khỏi MySQL. Mở thiết bị đầu cuối và chạy lệnh sau để mở tệp cấu hình MySQL.
$ sudo vi /etc/mysql/my.cnf
Thêm các dòng sau vào bên dưới phần [mysqld]
...
[mysqld]
query_cache_type=1
query_cache_size = 10M
query_cache_limit=256K
Chúng tôi đã bật bộ đệm truy vấn bằng cách đặt biến query_cache_type thành 1, với bộ đệm truy vấn riêng lẻ là 256Kb và tổng bộ đệm là 10Mb. Bạn có thể thay đổi các giá trị của query_cache_size và query_cache_limit theo yêu cầu của mình.
Phần thưởng đọc:Cách tăng tốc truy vấn MySQL
4. Khởi động lại cơ sở dữ liệu MySQL
Khởi động lại MySQL để áp dụng các thay đổi
$ sudo systemctl restart mysql
HOẶC
$ sudo service mysql restart
HOẶC
$ sudo /etc/init.d/mysql restart
Hy vọng rằng, bài viết này sẽ giúp bạn cấu hình bộ đệm truy vấn MySQL.