Các bảng mở trong MySQL là gì?

Tính năng này tuân theo Điều khoản dịch vụ của Google Cloud. Các tính năng trước GA có thể được hỗ trợ hạn chế và các thay đổi đối với các tính năng trước GA có thể không tương thích với các phiên bản trước GA khác. Để biết thêm thông tin, hãy xem

Trình đề xuất số lượng bảng mở cao của Cloud SQL giúp bạn phát hiện các phiên bản có số lượng bảng được mở đồng thời bằng với giá trị của table_open_cache. Sau đó, nó cung cấp các đề xuất về cách tối ưu hóa các phiên bản đó để cải thiện hiệu suất

Trang này mô tả cách thức hoạt động của trình giới thiệu số lượng bàn mở cao và cách bạn có thể sử dụng nó

Làm thế nào nó hoạt động

MySQL là đa luồng và khách hàng có thể đồng thời đưa ra truy vấn trên cùng một bảng từ nhiều luồng. Do đó, MySQL có thể có các bảng mở độc lập cho mỗi phiên. Số lượng bàn mở đồng thời được quản lý bởi table_open_cache. Nếu bộ đệm đầy và các bảng bổ sung được mở, MySQL sẽ đóng bảng ít được sử dụng gần đây nhất. Nếu tất cả các bảng trong bộ đệm hiện đang được sử dụng, MySQL sẽ tạm thời mở rộng bộ đệm và đóng các bảng ngay khi chúng không được sử dụng

Nếu số lượng bảng đang mở vượt quá giá trịtable_open_cache, hiệu suất cơ sở dữ liệu có thể bị ảnh hưởng bất lợi trong khối lượng công việc cao. Điều này là do nhiều luồng hơn được tạo và trình xử lý bảng phải mở và đóng bảng thường xuyên hơn

Công cụ đề xuất số lượng bảng mở cao của Cloud SQL phân tích các chỉ số về số lượng bảng đã mở trên một phiên bản Cloud SQL MySQL. Nếu số bàn đã mở tăng 1 cứ sau 2 giây hoặc nhanh hơn trong 24 giờ trước đó và số bàn đang mở bằng hoặc nhiều hơn giá trị table_open_cache, người giới thiệu khuyên bạn nên điều chỉnh cờ table_open_cache

Ghi chú. Đề xuất được tạo ra hàng ngày

định giá

Công cụ đề xuất có số lượng bảng mở cao trên Cloud SQL nằm trong bậc giá của Công cụ đề xuất tiêu chuẩn

Trước khi bắt đầu

Trước khi bạn có thể xem các đề xuất và thông tin chi tiết, hãy làm như sau

  • Để có quyền xem và làm việc với thông tin chi tiết cũng như đề xuất, hãy đảm bảo rằng bạn có các yêu cầu. Nhiệm vụVai tròXem đề xuấtMột trong những vai trò này.
    GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
    
    1 hoặc
    GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
    
    2. Áp dụng đề xuấtMột trong những vai trò này.
    GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
    
    3,
    GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
    
    4 hoặc
    GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
    
    5. Để biết thêm thông tin về vai trò, hãy xem hiểu vai trò và cấp quyền IAM
  • Kích hoạt API đề xuất

    Kích hoạt API

Liệt kê các đề xuất về hiệu suất của phiên bản

Bạn có thể liệt kê các đề xuất về hiệu suất của phiên bản bằng cách sử dụng Google Cloud console,

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
6 hoặc Recommender API

Các đề xuất cải thiện hiệu suất của phiên bản chỉ được hiển thị nếu bạn có các phiên bản sắp đạt đến giới hạn ngưỡng hiệu suất

Bảng điều khiển

Để liệt kê các đề xuất về hiệu suất của phiên bản bằng cách sử dụng bảng điều khiển Google Cloud, hãy làm theo các bước sau

  1. Truy cập trang Phiên bản Cloud SQL

    Chuyển đến Phiên bản đám mây SQL

  2. Nhấp vào Xem tất cả trên biểu ngữ đề xuất mở bộ nhớ cache của bảng Tăng

Ngoài ra, hãy làm theo các bước sau

  1. Chuyển đến Trung tâm đề xuất. Xem thêm Bắt đầu với Trung tâm đề xuất

    Chuyển đến Trung tâm đề xuất

  2. Trong thẻ Cải thiện hiệu suất phiên bản SQL trên đám mây, hãy nhấp vào Xem tất cả

  3. Chọn các phiên bản có đề xuất bộ đệm mở bảng Tăng

gcloud CLI

Để liệt kê các đề xuất Cải thiện Hiệu suất Phiên bản bằng cách sử dụng

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
7, hãy chạy lệnh
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
8 như sau

________số 8_______

Thay thế sau đây

  • GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
    
    9. ID dự án của bạn
  • gcloud recommender insights list \
    --project=PROJECT_ID \
    --location=LOCATION \
    --insight-type=google.cloudsql.instance.PerformanceInsight \
    --filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
    
    0. Một khu vực, chẳng hạn như
    gcloud recommender insights list \
    --project=PROJECT_ID \
    --location=LOCATION \
    --insight-type=google.cloudsql.instance.PerformanceInsight \
    --filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
    
    1

API

Để liệt kê các đề xuất Cải thiện hiệu suất phiên bản bằng cách sử dụng API Đề xuất, hãy gọi phương thức

gcloud recommender insights list \
--project=PROJECT_ID \
--location=LOCATION \
--insight-type=google.cloudsql.instance.PerformanceInsight \
--filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
2 như sau

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations

Thay thế sau đây

  • GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
    
    9. ID dự án của bạn
  • gcloud recommender insights list \
    --project=PROJECT_ID \
    --location=LOCATION \
    --insight-type=google.cloudsql.instance.PerformanceInsight \
    --filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
    
    0. Một khu vực, chẳng hạn như
    gcloud recommender insights list \
    --project=PROJECT_ID \
    --location=LOCATION \
    --insight-type=google.cloudsql.instance.PerformanceInsight \
    --filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
    
    1

Nếu trình đề xuất phát hiện các phiên bản có số lượng bảng mở cao, thì trình đề xuất sẽ liệt kê chúng trong một bảng cùng với các đề xuất hiệu suất khác. Mỗi hàng hiển thị ID phiên bản, đề xuất ngắn gọn, công cụ cơ sở dữ liệu, vị trí và ngày làm mới cuối cùng

Xem thông tin chi tiết và đề xuất chi tiết

Bạn có thể xem thông tin chi tiết và đề xuất chi tiết về các phiên bản có số lượng bàn mở cao bằng cách sử dụng bảng điều khiển Google Cloud,

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
7 hoặc API đề xuất

Bảng điều khiển

Để xem thông tin chi tiết và đề xuất chi tiết về các phiên bản gần đạt ngưỡng hiệu suất bằng cách sử dụng bảng điều khiển Google Cloud, hãy nhấp vào liên kết đề xuất trong danh sách các phiên bản

gcloud CLI

Để xem thông tin chi tiết và đề xuất chi tiết về các phiên bản gần đạt ngưỡng hiệu suất bằng cách sử dụng

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
7, hãy chạy lệnh
gcloud recommender insights list \
--project=PROJECT_ID \
--location=LOCATION \
--insight-type=google.cloudsql.instance.PerformanceInsight \
--filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
8 như sau

gcloud recommender insights list \
--project=PROJECT_ID \
--location=LOCATION \
--insight-type=google.cloudsql.instance.PerformanceInsight \
--filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES

Thay thế sau đây

  • GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
    
    9. ID dự án của bạn
  • gcloud recommender insights list \
    --project=PROJECT_ID \
    --location=LOCATION \
    --insight-type=google.cloudsql.instance.PerformanceInsight \
    --filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
    
    0. Một khu vực, chẳng hạn như
    gcloud recommender insights list \
    --project=PROJECT_ID \
    --location=LOCATION \
    --insight-type=google.cloudsql.instance.PerformanceInsight \
    --filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
    
    1

API

Để xem thông tin chi tiết và đề xuất chi tiết về các phiên bản có số lượng bảng mở cao bằng cách sử dụng API Đề xuất, hãy gọi phương thức

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfOpenTables/insights
2 như sau

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfOpenTables/insights

Thay thế sau đây

  • GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
    
    9. ID dự án của bạn
  • gcloud recommender insights list \
    --project=PROJECT_ID \
    --location=LOCATION \
    --insight-type=google.cloudsql.instance.PerformanceInsight \
    --filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
    
    0. Một khu vực, chẳng hạn như
    gcloud recommender insights list \
    --project=PROJECT_ID \
    --location=LOCATION \
    --insight-type=google.cloudsql.instance.PerformanceInsight \
    --filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
    
    1

Bảng sau đây liệt kê thông tin chi tiết và đề xuất mà công cụ đề xuất có số lượng bảng mở cao trên Cloud SQL tạo ra để giúp bạn cải thiện hiệu suất. Các loại phụ có thể nhìn thấy trong các kết quả của

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations
7 và API

Đề xuất thông tin chi tiết Số lượng bàn mở bằng với giá trị cờ table_open_cache
tiểu loại.
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfOpenTables/insights
8Tăng hiệu suất phiên bản Cloud SQL bằng cách giảm số lượng bảng đang mở
tiểu loại.
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfOpenTables/insights
9

Áp dụng đề xuất

Đánh giá các đề xuất một cách cẩn thận và thực hiện bất kỳ điều nào sau đây

  • Để kiểm tra phiên bản, hãy nhấp vào Xem phiên bản. Xem và làm theo các khuyến nghị

  • Để loại bỏ đề xuất sao cho nó không được nhấn mạnh và hiển thị mờ, hãy nhấp vào Loại bỏ

  • Để đóng bảng điều khiển mà không áp dụng hoặc loại bỏ đề xuất, hãy nhấp vào Hủy

Tối ưu hóa hiệu suất của phiên bản của bạn

Để tối ưu hóa hiệu suất của phiên bản, hãy làm như sau

  1. Tìm giá trị của table_open_cache. Rất khó để tìm kích thước chính xác của cờ table_open_cache nhưng bạn có thể sử dụng các cách sau để ước lượng

    Một cách để ước tính yêu cầu đối với các bảng mở là thông qua phân tích các truy vấn và luồng trong thời gian lưu lượng truy cập cao nhất. Bằng cách kiểm tra giá trị của biến

    table_open_cache = ( threads_connected * max number of table joins ) + K
    2 và phân tích các truy vấn để tìm số lượng liên kết tối đa, công thức sau đây có thể cung cấp kích thước ước tính của table_open_cache

    table_open_cache = ( threads_connected * max number of table joins ) + K
    Ở đây,
    table_open_cache = ( threads_connected * max number of table joins ) + K
    4 là hằng số biểu thị số lượng bảng và tệp tạm thời bổ sung được tạo trong các hoạt động truy vấn khác nhau. Nếu không có phép nối nào được sử dụng trong bất kỳ truy vấn nào, thì mỗi luồng sẽ mở một bảng. Bạn có thể ước tính giá trị của table_open_cache bằng công thức sau.
    table_open_cache = threads_connected + K 

    Một cách khác để ước tính giá trị của table_open_cache cho một khối lượng công việc nhất định là tăng giá trị của table_open_cache lên 500 cho đến khi đề xuất biến mất

  2. Nếu giá trị của

    table_open_cache = ( threads_connected * max number of table joins ) + K
    8 lớn hơn table_open_cache, hãy tăng giá trị của table_open_cache lên giá trị của
    table_open_cache = ( threads_connected * max number of table joins ) + K
    8. Để biết thông tin về cách cập nhật cờ cơ sở dữ liệu, hãy xem

    Làm cách nào để xem các bảng đang mở trong MySQL?

    Để sử dụng lệnh SHOW TABLES, trước tiên bạn cần đăng nhập vào máy chủ MySQL. .
    Khi mở Máy khách dòng lệnh MySQL, hãy nhập mật khẩu của bạn
    Chọn cơ sở dữ liệu cụ thể
    Chạy lệnh SHOW TABLES để xem tất cả các bảng trong cơ sở dữ liệu đã được chọn

    Làm cách nào để mở bảng trong SQL?

    Để xem dữ liệu bảng. .
    Trong SQL Developer, tìm kiếm một bảng như được mô tả trong "Xem bảng". .
    Chọn bảng chứa dữ liệu. .
    Trong ngăn đối tượng, bấm vào tab phụ Dữ liệu. .
    (Tùy chọn) Nhấp vào tên cột để sắp xếp dữ liệu theo cột đó
    (Tùy chọn) Nhấp vào tab phụ SQL để xem câu lệnh SQL xác định bảng

    Làm cách nào để tránh khóa bảng trong MySQL?

    Tùy chọn thứ ba để ngăn khóa bảng với cơ sở dữ liệu MySQL là sử dụng AUTOCOMMIT ở cấp cơ sở dữ liệu . Điều này sẽ ngăn việc khóa bảng xảy ra ngoài ý muốn trong quá trình thực hiện báo cáo vì tất cả các giao dịch được thực hiện sau khi chúng được thực thi mà không cần thêm lệnh cam kết.

    Làm cách nào để đóng bảng trong MySQL?

    Để xóa một bảng trong MySQL, hãy sử dụng câu lệnh DROP TABLE . Cú pháp cơ bản của lệnh như sau. DROP [TẠM THỜI] BẢNG [NẾU TỒN TẠI] tên_bảng [, tên_bảng] [HẠN CHẾ. CASCADE];