MariaDB Advance: Query Cache Update 2022

image 1 4079

Bí kíp về MariaDB Advance: Query Cache 2022

Bộ đệm truy vấn tàng trữ văn bản của câu lệnh select cùng với kết quả tương ứng được gửi đến máy khách. Nếu một câu lệnh giống hệt được trao tiếp theo đó, sever sẽ lấy kết quả từ bộ đệm truy vấn thay vì phân tích cú pháp và thực thi lại câu lệnh. Bộ đệm truy vấn được san sẻ Một trong những phiên, do đó, một triệu tập quả được tạo bởi một người tiêu dùng trọn vẹn có thể được gửi để đáp lại cùng một truy vấn do một người tiêu dùng khác đưa ra.

Bộ đệm truy vấn trọn vẹn có thể hữu ích trong môi trường tự nhiên vạn vật thiên nhiên nơi bạn có những bảng không thay đổi thường xuyên và sever nhận được nhiều truy vấn giống nhau. Đây là một trường hợp nổi bật cho nhiều sever Web tạo ra nhiều trang động nhờ vào nội dung cơ sở tài liệu.

Bộ đệm truy vấn không trả về tài liệu cũ. Khi những bảng được sửa đổi, mọi mục nhập có tương quan trong bộ đệm truy vấn sẽ bị xóa.

Điều này cực kỳ hữu ích trong môi trường tự nhiên vạn vật thiên nhiên đọc cao, viết thấp (như hầu hết những website nhất là những trang tin tức). Nó không mở rộng tốt trong những môi trường tự nhiên vạn vật thiên nhiên có I/O  cao trên những server đa lõi (multi-core ), do đó, nó bị tắt theo mặc định.
NỘI DUNGThiết Lập Query CacheKiểm tra Query CachePhân mảnh Query CacheEmptying and disabling the Query CacheThiết Lập Query Cache
Bạn trọn vẹn có thể xác minh xem Query Cache đã có được bật hay là không bằng phương pháp sử dụng câu lệnh sau:

MariaDB > SHOW STATUS LIKE ‘q%’;
+————————-+———–+
| Variable_name | Value |
+————————-+———–+
| Qcache_free_blocks | 0 |
| Qcache_free_memory | 0 |
| Qcache_hits | 0 |
| Qcache_inserts | 0 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 0 |
| Qcache_queries_in_cache | 0 |
| Qcache_total_blocks | 0 |
| Queries | 277915656 |
| Questions | 4 |
+————————-+———–+
Trong ví dụ rõ ràng này, Query Cache bị vô hiệu hóa, bạn cũng trọn vẹn có thể thấy rằng những dòng Qcache không còn thông số kỹ thuật nào, nhưng sever cơ sở tài liệu có tương hỗ nó hay là không?  ta trọn vẹn có thể kiểm tra với lệnh sau:
MariaDB [(none)]> SHOW VARIABLES LIKE ‘have_query_cache’;
+——————+——-+
| Variable_name | Value |
+——————+——-+
| have_query_cache | YES |
+——————+——-+

Kết qủa của lệnh trên trả về giá trị “YES” nghĩa là sever database có tương hỗ Query Cache. Tuy nhiên Query Cache hiện giờ đang bị vô hiệu hóa do toàn bộ chúng ta chưa thiết lập những giá trị cho Query Cache hoặt động.
Bằng cách thông số kỹ thuật kỹ thuật đúng Query Cache, bạn cũng trọn vẹn có thể giảm số lượng đĩa I/O sử dụng. MariaDB tàng trữ kết quả văn bản của câu lệnh SELECT  trong bộ nhớ. Khi cùng một truy vấn được thực thi lại, kết quả sẽ thuận tiện và đơn thuần và giản dị được tìm nạp từ bộ đệm, thay vì MariaDB phải cày qua những bảng một lần nữa.
Để Query Cache trọn vẹn có thể hoạt động và sinh hoạt giải trí, toàn bộ chúng ta cần set thêm một  biến quy định kích thước của cache là query_cache_size . Để thiết lập cache  bạn cũng trọn vẹn có thể thêm những thông số kỹ thuật sau vào file my.cnf  của MariaDB  những dòng sau và restart lại dịch vụ MariaDb để vận dụng thông số kỹ thuật kỹ thuật:
[mysqld]
# Bật Query Cache
query_cache_type = 1
# Quy định kích thước mà Query cache trọn vẹn có thể hoạt động và sinh hoạt giải trí(như trong Ví dụ này tôi quy định được cho phép dùng 10MB để tàng trữ)
query-cache-size = 10M

Để kiểm tra bạn cũng trọn vẹn có thể truy vấn khối mạng lưới hệ thống MariaDB và chạy lệnh sau:
MariaDB [(none)]> SHOW VARIABLES LIKE ‘query_cache_size’;
+——————+———-+
| Variable_name | Value |
+——————+———-+
| query_cache_size | 10485760 |
+——————+———-+

Kích thước lý tưởng của Query Cache thuộc thật nhiều vào nhu yếu rõ ràng của từng khối mạng lưới hệ thống. Đặt giá trị quá nhỏ sẽ dẫn đến kết quả truy vấn bị xóa khỏi bộ đệm khi chúng trọn vẹn có thể được sử dụng lại sau này. Đặt giá trị quá cao trọn vẹn có thể dẫn đến giảm hiệu suất do tranh chấp khóa, vì bộ đệm truy vấn bị khóa trong lúc update.
Cách thứ hai để số lượng giới hạn bộ đệm là có kích thước tối đa cho từng bộ kết quả truy vấn. Điều này ngăn một truy vấn duy nhất với một triệu tập quả lớn chiếm hầu hết bộ nhớ khả dụng và vô hiệu một số trong những lượng lớn những truy vấn nhỏ hơn khỏi bộ đệm. Điều này được xác lập bởi biến sever query_cache_limit.
query_cache_limit  sẽ quy định query  có dung tích bao nhiêu sẽ tiến hành lưu vào Query Cache.
Ví dụ: nếu ta set “query_cache_limit = 2M” điều này nghĩa là những query có kết quả trả về với kích thước  show variables like ‘query_cache_%’;
+——————————+———-+
| Variable_name | Value |
+——————————+———-+
| query_cache_limit | 2097152 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 10485760 |
| query_cache_strip_comments | OFF |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+——————————+———-+

Cẩn thận với MySQL Query Cache. Khi thông số kỹ thuật kỹ thuật sever MariaDB my.cnf của bạn, tránh để giá trị bộ đệm truy vấn quá rộng! Đặt giá trị thấp hơn như 100 – 200 MB. Một query_cache_size quá cao sẽ làm giảm đáng kể hiệu năng của sever.

Dưới đấy là những gì Oracle MySQL nói về bộ đệm truy vấn trong hướng dẫn tìm hiểu thêm MySQL của tớ(trọn vẹn có thể vận dụng cho MariaDB)

Hãy thận trọng về việc xác lập cỡ bộ đệm truy vấn quá rộng, điều này làm tăng nguồn lực vốn thiết yếu để duy trì bộ đệm, trọn vẹn có thể không còn ích khi kích hoạt nó. Kích thước trong hàng trăm MB thường có lợi. Kích thước trong hàng trăm MB trọn vẹn có thể không.

 

Kiểm tra Query Cache

Một số biến trạng thái phục vụ thông tin về bộ đệm truy vấn.
SHOW STATUS LIKE ‘Qcache%’;
+————————-+———-+
| Variable_name | Value |
+————————-+———-+
| Qcache_free_blocks | 1158 |
| Qcache_free_memory | 3760784 |
| Qcache_hits | 31943398 |
| Qcache_inserts | 42998029 |
| Qcache_lowmem_prunes | 34695322 |
| Qcache_not_cached | 652482 |
| Qcache_queries_in_cache | 4628 |
| Qcache_total_blocks | 11123 |
+————————-+———-+

Qcache_inserts chứa số lượng truy vấn được thêm vào bộ đệm truy vấn, Qcache_hits chứa số lượng truy vấn đã sử dụng bộ đệm truy vấn, trong lúc Qcache_lowmem_prunes chứa số lượng truy vấn bị xóa khỏi bộ đệm do thiếu bộ nhớ.

Ví dụ trên trọn vẹn có thể chỉ ra bộ đệm hoạt động và sinh hoạt giải trí kém. Nhiều truy vấn đã được thêm vào và nhiều truy vấn đã biết thành vô hiệu bỏ hơn so với thực tiễn đã được sử dụng. Trường hợp này việc thiết lập Query Cache sẽ không còn mang lại hiệu suất cao, bạn phải theo dõi thường xuyên để sở hữu thông số kỹ thuật kỹ thuật thích hợp hoặc trọn vẹn có thể tắt Query Cache  nếu  môi trường tự nhiên vạn vật thiên nhiên hoạt động và sinh hoạt giải trí không phù phù thích hợp với việc  sử dụng Query Cache.
Phân mảnh Query Cache

Cache truy vấn sử dụng những khối có độ dài thay đổi và theo thời hạn trọn vẹn có thể bị phân mảnh. Qcache_free_blocks cao so với Qcache_total_blocks trọn vẹn có thể biểu thị sự phân mảnh. FLush QUERY CACHE sẽ chống phân mảnh bộ đệm truy vấn mà không bỏ bất kỳ truy vấn nào:

MariaDB [(none)]> FLUSH QUERY CACHE;
Query OK, 0 rows affected (0.000 sec)
Kiểm tra lại giá trị “Qcache_free_blocks”
SHOW STATUS LIKE ‘Qcache%’;
+————————-+———-+
| Variable_name | Value |
+————————-+———-+
| Qcache_free_blocks | 1 |
| Qcache_free_memory | 6101576 |
| Qcache_hits | 31981126 |
| Qcache_inserts | 43002404 |
| Qcache_lowmem_prunes | 34696486 |
| Qcache_not_cached | 655607 |
| Qcache_queries_in_cache | 4197 |
| Qcache_total_blocks | 8833 |
+————————-+———-+
Qcache_free_blocks sẽ trở lại giá trị là một trong.
Emptying and disabling the Query Cache

Đặt query_cache_type hoặc query_cache_size thành 0 sẽ vô hiệu hóa bộ đệm truy vấn, nhưng để giải phóng hầu hết những tài nguyên, hãy đặt cả hai thành 0 khi chúng ta có nhu yếu muốn tắt Query Cache.

Video MariaDB Advance: Query Cache mới nhất?

Quý khách đang tìm kiếm từ khóa MariaDB Advance: Query Cache 2022-10-26 20:35:48 san sẻ Kinh Nghiệm về trong nội dung bài viết một cách Mới Nhất.
#MariaDB #Advance #Query #Cache MariaDB Advance: Query Cache
===> Nếu bạn có thắc mắc hay yếu tố gì nội dung bài viết trọn vẹn có thể để lại phản hồi cuối bài nghen.

Exit mobile version