Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL lưu trữ dữ liệu như thế nào

Câu hỏi này hơi cũ nhưng tôi quyết định trả lời nó bằng cách nào đó vì tôi đã thực hiện một số nghiên cứu về vấn đề tương tự. Câu trả lời của tôi dựa trên hệ thống tệp linux. Về cơ bản, mySQL lưu trữ dữ liệu trong các tệp trong đĩa cứng của bạn. Nó lưu trữ các tệp trong một thư mục cụ thể có biến hệ thống "datadir". Mở mysql bảng điều khiển và chạy lệnh sau sẽ cho bạn biết chính xác vị trí của thư mục.

mysql>  SHOW VARIABLES LIKE 'datadir';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.01 sec)

Như bạn có thể thấy từ lệnh trên, "datadir" của tôi nằm trong /var/lib/mysql/ . Vị trí của "datadir" có thể khác nhau trong các hệ thống khác nhau. Thư mục chứa các thư mục và một số tệp cấu hình. Mỗi thư mục đại diện cho một cơ sở dữ liệu mysql và chứa các tệp có dữ liệu cho cơ sở dữ liệu cụ thể đó. dưới đây là ảnh chụp màn hình của thư mục "datadir" trong hệ thống của tôi.

Mỗi thư mục trong thư mục đại diện cho một cơ sở dữ liệu MySQL. Mỗi thư mục cơ sở dữ liệu chứa các tệp đại diện cho các bảng trong cơ sở dữ liệu đó. Có hai tệp cho mỗi bảng, một tệp có .frm và phần mở rộng khác có .idb sự mở rộng. Xem ảnh chụp màn hình bên dưới.

.frm tệp bảng lưu trữ định dạng của bảng. Chi tiết: Định dạng Tệp MySQL .frm

.ibd tệp lưu trữ dữ liệu của bảng. Chi tiết: InnoDB File-Per-Table Tablespaces

Đó là mọi người! Tôi hy vọng tôi đã giúp ai đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để lập chỉ mục một bảng liên kết cho kết nối nhiều-nhiều trong MySQL?

  2. Làm cách nào để đếm giá trị NULL trong MySQL?

  3. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên CentOS 5

  4. # 1115 - Bộ ký tự không xác định:'utf8mb4'

  5. Lỗi SQL (1215):Không thể thêm ràng buộc khóa ngoại