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

MySQL:Nhiều bảng hay nhiều cơ sở dữ liệu?

Không được có sự khác biệt đáng kể về hiệu suất giữa nhiều bảng trong một cơ sở dữ liệu so với nhiều bảng trong cơ sở dữ liệu riêng biệt.

Trong MySQL, cơ sở dữ liệu (SQL tiêu chuẩn sử dụng thuật ngữ "lược đồ" cho điều này) chủ yếu phục vụ như một không gian tên cho các bảng. Cơ sở dữ liệu chỉ có một số thuộc tính, ví dụ:bộ ký tự mặc định và đối chiếu. Và việc sử dụng GRANT đó giúp thuận tiện trong việc kiểm soát các đặc quyền truy cập trên mỗi cơ sở dữ liệu, nhưng điều đó không liên quan gì đến hiệu suất.

Bạn có thể truy cập các bảng trong bất kỳ cơ sở dữ liệu nào từ một kết nối duy nhất (miễn là chúng được quản lý bởi cùng một phiên bản của MySQL Server). Bạn chỉ cần đáp ứng đủ điều kiện cho tên bảng:

SELECT * FROM database17.accounts_table;

Đây hoàn toàn là một sự khác biệt về cú pháp. Nó sẽ không ảnh hưởng đến hiệu suất.

Về bộ nhớ, bạn không thể sắp xếp các bảng thành một tệp cho mỗi cơ sở dữ liệu như @Chris suy đoán. Với công cụ lưu trữ MyISAM, bạn luôn có một tệp trên mỗi bảng. Với công cụ lưu trữ InnoDB, bạn có một bộ tệp lưu trữ duy nhất kết hợp tất cả các bảng hoặc nếu không thì bạn có một tệp cho mỗi bảng (điều này được định cấu hình cho toàn bộ máy chủ MySQL, không phải cho mỗi cơ sở dữ liệu). Trong cả hai trường hợp, không có lợi thế hoặc bất lợi về hiệu suất khi tạo các bảng trong một cơ sở dữ liệu duy nhất so với nhiều cơ sở dữ liệu.

Không có nhiều tham số cấu hình MySQL hoạt động trên mỗi cơ sở dữ liệu. Hầu hết các tham số ảnh hưởng đến hiệu suất máy chủ đều có phạm vi trên toàn máy chủ.

Về sao lưu, bạn có thể chỉ định một tập hợp con các bảng làm đối số cho mysqldump yêu cầu. Có thể thuận tiện hơn khi sao lưu các nhóm bảng logic trên mỗi cơ sở dữ liệu mà không cần phải đặt tên cho tất cả các bảng trên dòng lệnh. Nhưng nó sẽ không tạo ra sự khác biệt đối với hiệu suất, chỉ thuận tiện cho bạn khi bạn nhập lệnh sao lưu.



  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ần cuối cùng một bảng mysql được truy cập là khi nào?

  2. Giữ thông tin tài khoản trong mọi hoạt động trong android studio

  3. Tham gia Mysql cung cấp các hàng trùng lặp

  4. InnoDB và MyISAM trong MySQL là gì?

  5. Sử dụng .aggregate () trên một giá trị được giới thiệu bằng .extra (select ={...}) trong Truy vấn Django?