Hướng dẫn what is open table in mysql? - open table trong mysql là gì?

13.7.7.24 & NBSP; Hiển thị câu lệnh Mở Bảng

SHOW OPEN TABLES
    [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]

SHOW OPEN TABLES liệt kê các bảng không phải là không phải hiện đang mở trong bộ đệm bảng. Xem Phần & NBSP; 8.4.3.1, Cách MySQL mở và đóng bảng. Điều khoản FROM, nếu có, hạn chế các bảng được hiển thị cho các bảng có trong cơ sở dữ liệu db_name. Điều khoản LIKE, nếu có, chỉ ra tên bảng nào phù hợp. Điều khoản WHERE có thể được đưa ra để chọn các hàng bằng cách sử dụng các điều kiện chung hơn, như được thảo luận trong Phần & NBSP; 26.8, Phần mở rộng để hiển thị các câu lệnh.

SHOW OPEN TABLES Đầu ra có các cột sau:

  • Uptime: 426 Running threads: 1 Questions: 11082
    Reloads: 1 Open tables: 12
    0

    Cơ sở dữ liệu chứa bảng.

  • Uptime: 426 Running threads: 1 Questions: 11082
    Reloads: 1 Open tables: 12
    1

    Tên bảng.

  • Uptime: 426 Running threads: 1 Questions: 11082
    Reloads: 1 Open tables: 12
    2

    Số lượng khóa bảng hoặc yêu cầu khóa có cho bảng. Ví dụ: nếu một máy khách có được khóa cho bảng bằng cách sử dụng

    Uptime: 426 Running threads: 1 Questions: 11082
    Reloads: 1 Open tables: 12
    3,
    Uptime: 426 Running threads: 1 Questions: 11082
    Reloads: 1 Open tables: 12
    2 là 1. Nếu một máy khách khác phát hành
    Uptime: 426 Running threads: 1 Questions: 11082
    Reloads: 1 Open tables: 12
    3 trong khi bảng vẫn bị khóa, máy khách sẽ chặn, chờ khóa, nhưng yêu cầu khóa khiến
    Uptime: 426 Running threads: 1 Questions: 11082
    Reloads: 1 Open tables: 12
    2 là 2. Nếu Số đếm bằng không, bảng mở nhưng hiện không được sử dụng.
    Uptime: 426 Running threads: 1 Questions: 11082
    Reloads: 1 Open tables: 12
    2 cũng được tăng lên bởi tuyên bố
    Uptime: 426 Running threads: 1 Questions: 11082
    Reloads: 1 Open tables: 12
    8 và giảm
    Uptime: 426 Running threads: 1 Questions: 11082
    Reloads: 1 Open tables: 12
    9.

  • mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | Opened_tables | 2741  |
    +---------------+-------+
    0

    Cho dù tên bảng bị khóa. Khóa tên được sử dụng cho các hoạt động như thả hoặc đổi tên bảng.

Nếu bạn không có đặc quyền cho một bảng, nó không hiển thị trong đầu ra từ SHOW OPEN TABLES.


8.4.3.1 & nbsp; Cách MySQL mở và đóng bảng

Khi bạn thực thi lệnh trạng thái mysqladmin, bạn sẽ thấy một cái gì đó như thế này:mysqladmin status command, you should see something like this:

Uptime: 426 Running threads: 1 Questions: 11082
Reloads: 1 Open tables: 12

Giá trị

mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
2 của 12 có thể hơi khó hiểu nếu bạn có ít hơn 12 bảng.

MySQL được đa luồng, vì vậy có thể có nhiều khách hàng phát hành truy vấn cho một bảng nhất định. Để giảm thiểu vấn đề với nhiều phiên khách có trạng thái khác nhau trên cùng một bảng, bảng được mở độc lập bởi mỗi phiên đồng thời. Điều này sử dụng bộ nhớ bổ sung nhưng thường tăng hiệu suất. Với các bảng

mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
3, một bộ mô tả tệp bổ sung là bắt buộc cho tệp dữ liệu cho mỗi máy khách có bảng mở. (Ngược lại, bộ mô tả tệp chỉ mục được chia sẻ giữa tất cả các phiên.)

Các biến hệ thống

mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
4 và
mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
5 ảnh hưởng đến số lượng tệp tối đa mà máy chủ vẫn mở. Nếu bạn tăng một hoặc cả hai giá trị này, bạn có thể chạy lên so với giới hạn được áp đặt bởi hệ điều hành của bạn đối với số lượng mô tả tệp mở trên mỗi quy trình. Nhiều hệ điều hành cho phép bạn tăng giới hạn tệp mở, mặc dù phương pháp thay đổi từ hệ thống này sang hệ thống khác. Tham khảo tài liệu hệ điều hành của bạn để xác định xem có thể tăng giới hạn hay không và cách làm như vậy.

mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
4 có liên quan đến
mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
5. Ví dụ: trong 200 kết nối chạy đồng thời, chỉ định kích thước bộ đệm bảng ít nhất là
mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
8, trong đó
mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
9 là số bảng tối đa mỗi lần tham gia vào bất kỳ truy vấn nào bạn thực hiện. Bạn cũng phải bảo lưu một số mô tả tệp bổ sung cho các bảng và tệp tạm thời.

Đảm bảo rằng hệ điều hành của bạn có thể xử lý số lượng mô tả tệp mở được ngụ ý bởi cài đặt

mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
4. Nếu
mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
4 được đặt quá cao, MySQL có thể hết các mô tả tệp và biểu hiện các triệu chứng như từ chối kết nối hoặc không thực hiện các truy vấn.

Cũng có tính đến rằng công cụ lưu trữ

mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
3 cần hai mô tả tệp cho mỗi bảng mở duy nhất. Để tăng số lượng mô tả tệp có sẵn cho MySQL, hãy đặt biến hệ thống SHOW OPEN TABLES3. Xem Phần & NBSP; B.3.2.16, Tệp không tìm thấy và các lỗi tương tự.

Bộ nhớ cache của các bảng mở được giữ ở cấp độ của các mục

mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
4. Máy chủ tự động kích thước bộ đệm khi khởi động. Để đặt kích thước một cách rõ ràng, hãy đặt biến hệ thống
mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
4 khi khởi động. MySQL có thể tạm thời mở nhiều bảng hơn thế này để thực hiện các truy vấn, như được mô tả sau trong phần này.

MySQL đóng một bảng không sử dụng và xóa nó khỏi bộ đệm bảng trong các trường hợp sau:

  • Khi bộ đệm đầy và một luồng cố gắng mở một bảng không có trong bộ đệm.

  • Khi bộ đệm chứa nhiều hơn các mục

    mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | Opened_tables | 2741  |
    +---------------+-------+
    4 và bảng trong bộ đệm không còn được sử dụng bởi bất kỳ luồng nào.

  • Khi một hoạt động Flushing xảy ra. Điều này xảy ra khi ai đó đưa ra câu lệnh SHOW OPEN TABLES7 hoặc thực thi lệnh flush mysqladmin hoặc lệnh làm mới mysqladmin.mysqladmin flush-tables or mysqladmin refresh command.

Khi bộ đệm bảng lấp đầy, máy chủ sử dụng quy trình sau để xác định vị trí mục nhập bộ đệm để sử dụng:

  • Các bảng hiện không được sử dụng được phát hành, bắt đầu với bảng ít được sử dụng gần đây.

  • Nếu một bảng mới phải được mở, nhưng bộ đệm đã đầy và không có bảng nào có thể được phát hành, bộ đệm tạm thời được mở rộng khi cần thiết. Khi bộ đệm ở trạng thái tạm thời được mở rộng và một bảng đi từ trạng thái được sử dụng đến không sử dụng, bảng được đóng và phát hành từ bộ đệm.

Một bảng

mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
3 được mở cho mỗi truy cập đồng thời. Điều này có nghĩa là bảng cần được mở hai lần nếu hai luồng truy cập cùng một bảng hoặc nếu một luồng truy cập bảng hai lần trong cùng một truy vấn (ví dụ: bằng cách kết hợp bảng vào chính nó). Mỗi lần mở đồng thời yêu cầu một mục trong bộ đệm bảng. Mở đầu tiên của bất kỳ bảng
mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
3 nào có hai mô tả tệp: một cho tệp dữ liệu và một cho tệp chỉ mục. Mỗi lần sử dụng bổ sung của bảng chỉ lấy một bộ mô tả tệp cho tệp dữ liệu. Bộ mô tả tệp chỉ mục được chia sẻ giữa tất cả các luồng.

Nếu bạn đang mở một bảng với câu lệnh mở TEMPORARY0, một đối tượng bảng chuyên dụng được phân bổ cho luồng. Đối tượng bảng này không được chia sẻ bởi các luồng khác và không được đóng cho đến khi luồng gọi TEMPORARY0 đóng hoặc luồng kết thúc. Khi điều này xảy ra, bảng được đặt lại trong bộ đệm bảng (nếu bộ đệm không đầy). Xem Phần & NBSP; 13.2.4, Tuyên bố của Hand Handler.

Để xác định xem bộ đệm bảng của bạn có quá nhỏ hay không, hãy kiểm tra biến trạng thái TEMPORARY2, cho biết số lượng hoạt động mở bảng kể từ khi máy chủ bắt đầu:

mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+

Nếu giá trị rất lớn hoặc tăng nhanh, ngay cả khi bạn chưa phát hành nhiều báo cáo TEMPORARY3, hãy tăng giá trị

mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 2741  |
+---------------+-------+
4 khi khởi động máy chủ.

Làm thế nào để bạn mở một bảng trong cơ sở dữ liệu?

Cơ sở dữ liệu. Cơ sở dữ liệu chứa bảng ..
Bàn. Tên bảng ..
In_use. Số lượng khóa bảng hoặc yêu cầu khóa có cho bảng. Ví dụ: nếu một máy khách có được khóa cho bảng bằng cách sử dụng bảng khóa t1, in_use là 1. ....
Name_locked. Cho dù tên bảng bị khóa ..

Làm cách nào để mở một 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, nhấp vào Subtab dữ liệu.....
(Tùy chọn) Nhấp một tên cột để sắp xếp dữ liệu theo cột đó ..
(Tùy chọn) Nhấp vào SQL Subtab để xem câu lệnh SQL xác định bảng ..

Tại sao MySQL được gọi là cơ sở dữ liệu mở?

MySQL là một hệ thống quản lý cơ sở dữ liệu cho phép bạn quản lý cơ sở dữ liệu quan hệ.Nó là phần mềm nguồn mở được hỗ trợ bởi Oracle.Điều đó có nghĩa là bạn có thể sử dụng MySQL mà không phải trả tiền xu.open source software backed by Oracle. It means you can use MySQL without paying a dime.

Table_open_cache trong MySQL là gì?

TAGE_OPEN_CACHE cho biết số lượng bảng tối đa mà máy chủ có thể mở trong bất kỳ phiên bản bộ đệm nào.Lý tưởng nhất là bạn muốn bộ này để mở lại một bảng không thường xuyên nhất có thể.indicates the maximum number of tables the server can keep open in any one table cache instance. Ideally, you'd like this set so as to re-open a table as infrequently as possible.