2008-09-07 42 views
27

Kích thước tối đa cho bảng MySQL là gì? Có 2 triệu ở mức 50GB không? 5 triệu ở 80GB?Kích thước bảng tối đa cho cơ sở dữ liệu MySQL

Ở cuối cao hơn quy mô kích thước, tôi có cần suy nghĩ về việc nén dữ liệu không? Hoặc có lẽ tách bảng nếu nó phát triển quá lớn?

+0

bạn cũng thực sự không muốn chia bảng nếu nó lớn lên, bạn chỉ muốn phân vùng nó. –

+1

bản sao có thể có của [Cơ sở dữ liệu MySQL lớn như thế nào có được trước khi hiệu suất bắt đầu giảm dần] (http://stackoverflow.com/questions/1276/how-big-can-a-mysql-database-get-before-performance-starts -to-degrade) – random

Trả lời

0

Về câu hỏi đầu tiên của bạn, kích thước tối đa hiệu quả cho việc cơ sở dữ liệu thường được xác định bởi hệ điều hành, đặc biệt là các tập tin kích thước MySQL Server sẽ có thể tạo, không phải bởi chính MySQL Server. Các giới hạn đó đóng một vai trò lớn trong các giới hạn kích thước bảng. Và MyISAM hoạt động khác với InnoDB. Vì vậy, bất kỳ bảng nào sẽ phụ thuộc vào các giới hạn đó.

Nếu bạn sử dụng InnoDB, bạn sẽ có thêm tùy chọn thao tác kích thước bảng, thay đổi kích thước vùng bảng là một tùy chọn trong trường hợp này, vì vậy nếu bạn có kế hoạch thay đổi kích thước, đây là cách để đi. Hãy xem trang lỗi The table is full.

Tôi không chắc chắn số lượng bản ghi thực của mỗi bảng được cung cấp tất cả thông tin cần thiết (OS, loại bảng, cột, kiểu dữ liệu và kích thước của mỗi và v.v.) Và tôi không chắc liệu thông tin này có dễ dàng không tính toán, nhưng tôi đã nhìn thấy bảng đơn giản với khoảng 1bi hồ sơ trong một vài trường hợp và MySQL đã không bỏ cuộc.

+1

tại sao OS sẽ giới hạn kích thước bảng của bạn? MySQL chỉ có thể hỗ trợ các bảng trong một tệp duy nhất? Không có khái niệm không gian bảng nào cho phép ánh xạ nhiều hơn một tệp vào một bảng đơn lẻ? –

35

Tôi đã từng làm việc với một cơ sở dữ liệu MySQL rất lớn (Terabyte +). Bảng lớn nhất mà chúng tôi có là hơn một tỷ hàng.

Nó hoạt động. MySQL xử lý dữ liệu chính xác phần lớn thời gian. Đó là vô cùng khó sử dụng mặc dù.

Chỉ sao lưu và lưu trữ dữ liệu là một thách thức. Sẽ mất vài ngày để khôi phục lại bảng nếu chúng tôi cần.

Chúng tôi có nhiều bảng trong phạm vi hàng 10-100 triệu. Bất kỳ sự tham gia quan trọng nào vào các bảng đều mất thời gian và sẽ mất nhiều thời gian. Vì vậy, chúng tôi đã viết các thủ tục được lưu trữ để 'đi bộ' các bảng và quá trình tham gia vào các phạm vi của 'id's. Bằng cách này, chúng tôi sẽ xử lý dữ liệu từ 10-100.000 hàng tại một thời điểm (Tham gia chống lại 1-100.000 của id sau đó 100.001-200.000, v.v.). Điều này nhanh hơn đáng kể so với việc gia nhập toàn bộ bảng.

Sử dụng chỉ mục trên các bảng rất lớn không dựa trên khóa chính cũng khó khăn hơn nhiều. Mysql lưu trữ các chỉ mục theo hai phần - nó lưu trữ các chỉ mục (không phải chỉ số chính) làm chỉ mục cho các giá trị khóa chính. Vì vậy, các tìm kiếm được lập chỉ mục được thực hiện trong hai phần: Đầu tiên MySQL đi đến một chỉ mục và kéo từ đó các giá trị khóa chính cần tìm, sau đó tìm kiếm thứ hai trên chỉ mục khóa chính để tìm các giá trị đó.

Mạng lưới này là dành cho các bảng rất lớn (1-200 Triệu cộng với hàng) lập chỉ mục so với bảng là hạn chế hơn. Bạn cần ít hơn, chỉ mục đơn giản hơn. Và làm ngay cả những câu lệnh chọn đơn giản không trực tiếp trên một chỉ mục có thể không bao giờ quay lại. Khi các điều khoản phải chỉ mục truy cập hoặc quên đi chỉ mục đó.

Nhưng tất cả những gì được nói, mọi thứ đã thực sự hoạt động. Chúng tôi đã có thể sử dụng MySQL với các bảng rất lớn này và thực hiện các phép tính và nhận được câu trả lời đúng.

+1

Bạn có gợi ý nơi tôi có thể nhận được các bảng lớn như vậy để thử nghiệm không? Chúng tôi đang viết một hệ thống quản lý cơ sở dữ liệu và muốn kiểm tra hiệu suất của hệ thống của chúng tôi cùng với MySQL. – StanE

-1

Xem điều này http://www.clb4u.com/2013/10/scalability-and-limits-of-mysql.html

Hỗ trợ cơ sở dữ liệu lớn. Chúng tôi sử dụng MySQL Server với cơ sở dữ liệu chứa 50 triệu bản ghi. Chúng tôi cũng biết những người dùng sử dụng MySQL Server với 200.000 bảng và khoảng 5.000.000.000 hàng.

+3

Vui lòng không chỉ tạo câu trả lời cho liên kết. Bao gồm các phần thiết yếu của câu trả lời ở đây. – Harry

+3

Liên kết bị hỏng. – dbcb

Các vấn đề liên quan