Số lượng bảng tối đa mà MySQL có thể xử lý là bao nhiêu?Số lượng bảng tối đa trong MySQL
Trả lời
Thực tế là bạn đang đặt câu hỏi này có lẽ là một chỉ báo cho thấy bạn không sử dụng phương pháp thực hành tốt nhất cho vấn đề của mình.
Bạn có thể muốn giải thích lý do tại sao bạn cần tạo nhiều bảng để xem bạn có nhận được đề xuất tốt hơn về cách giải quyết vấn đề này hay không. Tuy nhiên, không có giới hạn máy chủ về số lượng bảng trong cơ sở dữ liệu MySQL, nhưng vì mỗi bảng MyISAM có tệp được liên kết, thì bất kỳ giới hạn OS nào về số lượng tệp được phép sẽ có hiệu lực. Các bảng, chỉ mục, v.v. của InnoDB được lưu trữ trong một vùng bảng duy nhất, với tối đa hai tỷ bảng. (Source)
MyISAM là gì? – John
MyISAM là công cụ lưu trữ mặc định cho MySQL. Các bảng của bạn có thể đang sử dụng MyISAM trừ khi bạn đã khai báo rõ ràng để sử dụng InnoDB. Mỗi bảng MyISAM được lưu trữ trên đĩa trong ba tập tin. Các tệp có tên bắt đầu bằng tên bảng và có phần mở rộng để biểu thị loại tệp. Tệp .frm lưu trữ định dạng bảng. Tệp dữ liệu có phần mở rộng .MYD. Tệp chỉ mục có phần mở rộng .MYI. Thông tin thêm: http://dev.mysql.com/doc/refman/5.0/en/myisam-storage-engine.html, http://en.wikipedia.org/wiki/MyISAM. –
+1 cho vẫn trả lời câu hỏi ngay cả sau khi chỉ ra nó có lẽ không phải là một ý tưởng tốt. –
Trái ngược với câu trả lời của Daniel Vassallo, tôi có trường hợp sử dụng khi cần một số lượng lớn bảng. Tôi có thể sai, nhưng tôi không nghĩ rằng có bất kỳ "thực hành tốt nhất" mà tôi có thể làm giảm số lượng bảng.
Mặc dù có thể đúng là số lượng bảng chỉ bị giới hạn bởi hệ điều hành, tôi chỉ muốn thêm rằng tôi đang sử dụng hơn 1000 bảng trong cơ sở dữ liệu với hiệu suất khá tốt. Nhược điểm duy nhất có vẻ là tăng chi phí cho các tập tin .frm. Trong trường hợp của tôi, tôi đã chia một bảng rất lớn thành 1000 + bảng riêng biệt với cùng một cấu trúc bảng. Phân vùng MySQL không phải là một lựa chọn cho tôi vì không chuẩn hóa, đòi hỏi 2 bản sao của mỗi bản ghi trong các bảng riêng biệt.
* "Tôi đã chia một bảng rất lớn thành 1000 bảng riêng biệt" * - tại sao bạn phải làm điều đó? – TMS
Để cải thiện hiệu suất (thời gian truy vấn nhanh hơn). Như tôi đã giải thích, phân vùng không phải là một lựa chọn vì nó không cho phép tôi đặt hai bản sao của mỗi bản ghi vào các phân vùng khác nhau (ít nhất là không có cách nào tôi có thể tìm ra). – robguinness
Từ quan điểm bình thường hóa dữ liệu, nhiều bảng có thể là thực hành không tốt (phụ thuộc vào các bảng). Chỉ cần nói, mỗi lý thuyết cần phải được chứng minh trong thực tế và ngược lại. Vì vậy, tôi nghi ngờ lập trường được đưa ra trong bình luận của bạn (trong câu trả lời) nhưng +1 để chia sẻ những gì bạn đã làm. – hakre
Tôi cũng có trường hợp sử dụng khi cần một số lượng lớn bảng. Hiện tại, một trong những cơ sở dữ liệu của chúng tôi có gần 100.000 bảng với hiệu suất tuyệt vời.
Như Rob Guinness đã đề cập, có một chi phí đáng kể cho các tệp .frm. Điều quan trọng cần lưu ý là bất kỳ truy vấn nào vào information_schema không có giới hạn về lược đồ và nếu có thể, chính bảng sẽ dẫn đến một lần truy cập hiệu suất nghiêm trọng trong khi truy vấn chạy.
Mỗi bảng trong số này có cấu trúc khác nhau không? – TMS
Thực tế là bạn đang đặt câu hỏi này có thể là chỉ báo mà bạn không sử dụng phương pháp thực hành tốt nhất cho vấn đề của mình.
Một tình huống tiềm năng mà bạn có thể cần nhiều bảng là khi bạn đang phát triển ứng dụng nhiều bên thuê cho mỗi đối tượng thuê bạn tạo bộ bảng riêng biệt (ví dụ: tentantId là tiền tố tên bảng). Xem bài viết này (phần Cô lập dữ liệu): http://www.javacodegeeks.com/2013/11/architecting-a-multi-tenant-application.html
- 1. Số lượng tối đa các bảng khả thi trong SQL Server và MySQL
- 2. Các hàng tối đa cho bảng MySQL
- 3. Số lượng cookie tối đa được phép
- 4. Số lượng tối đa HttpWebRequests đồng thời
- 5. Độ dài tối đa của tên bảng trong MySQL
- 6. LINQ: groupby với số lượng tối đa trong mỗi nhóm
- 7. Số lượng chủ đề tối đa trong ứng dụng .NET?
- 8. Số lượng tối đa các quy trình trong linux
- 9. Số lượng đối tượng tối đa trong NSArray
- 10. đặt số lượng tối đa các dòng trong uilabel
- 11. Làm cách nào tôi có thể đặt số hàng tối đa trong bảng MySQL?
- 12. Chức năng PHP - Số lượng đối số tối đa
- 13. Kích thước tối đa chỉ số UNIQUE trong MySQL
- 14. Số lượng hàng tối đa trong bảng cơ sở dữ liệu MS Access?
- 15. mục đích của số tối đa trong php & mysql
- 16. CHỌN giá trị tối thiểu tối đa và tối đa từ một phần của bảng trong MySQL
- 17. OpenSSL định cấu hình số lượng kết nối tối đa
- 18. Jenkins - số lượng công việc đồng thời tối đa
- 19. Số hàng tối đa trong một bảng sqlite?
- 20. Tăng số lượng kết nối tối đa MongoDB
- 21. Có số lượng git stashes tối đa không?
- 22. Hiệu suất MySQL - Số lượng bảng Vs. Số Hàng
- 23. Tối đa hóa thông lượng với RabbitMQ
- 24. UIImagePickerController - Đặt thời lượng video tối đa
- 25. Kích thước tối đa của int (10) trong Mysql
- 26. Thời lượng tối đa của cookie javascript
- 27. Facebook - số lượng thông số tối đa trong mệnh đề “IN”?
- 28. Số lượng tối đa các tham số trong một mảng Java
- 29. sql để lấy số tối đa từ cả hai bảng?
- 30. mysql group_concat với số lượng bên trong?
Đối với tài liệu, vui lòng xem [Giới hạn về số lượng cơ sở dữ liệu và bảng] (https://dev.mysql.com/doc/refman/5.5/en/database-count- limit.html) và tương tự. Ví dụ. 'InnoDB' cho phép lên đến 4 tỷ bảng (và tôi phải thừa nhận nếu đó là US-tỷ hay không tôi không thể nói). Đối với một bình luận chuyên nghiệp: [Bill Karwin về "Có một số lượng tối đa các bảng cơ sở dữ liệu MySQL có thể có không?"] (Https://www.quora.com/Is-there-a-maximum-number-of-tables- a-MySQL-database-can-have) – hakre