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.
Nguồn
2010-11-23 10:57:48
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ó. –
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