Chỉ cần 'Cơ sở dữ liệu lớn' là gì?


80

Ok, câu hỏi ngớ ngẩn tôi biết nhưng tôi thấy nhận xét ngớ ngẩn 'một cơ sở dữ liệu lớn' cũng như nhỏ và vừa và tôi tự hỏi điều đó có nghĩa là gì. Ai đó có thể định nghĩa một cơ sở dữ liệu nhỏ, trung bình và lớn là gì đối với chúng tôi các neophytes SQL không?


Xin lỗi, bạn đã thất bại, bạn sẽ không nhận được +5 cho một câu hỏi ngớ ngẩn ;-).
Toon Krijthe

Tôi sẽ đánh dấu điều này là chủ quan, hãy cho tôi biết nếu bạn không đồng ý.
James McMahon

Nhân tiện, câu hỏi thú vị này, tôi vừa nghĩ về điều này vào ngày hôm trước.
James McMahon

2
Đúng vậy, việc học SQL và thiết kế cơ sở dữ liệu đã giúp tôi đưa nó vào quan điểm.
Randin

Tôi đã tự lừa mình vào một cơ sở dữ liệu lớn. Tôi thích câu trả lời từ @dkretz đặt nó về hiệu suất và cân nhắc mã hóa.
Milo LaMar 20/1218

Câu trả lời:


106

Không có ngưỡng mà cơ sở dữ liệu nhỏ trở thành trung bình hoặc cơ sở dữ liệu trung bình trở thành lớn. Nói chung, khi tôi nghe những thuật ngữ này, tôi nghĩ đến những thứ tự cấp độ cụ thể về tổng số bản ghi được lưu trữ.

  • Nhỏ: 10 bản ghi 5 trở xuống.
  • Trung bình: 10 5 đến 10 7 bản ghi.
  • Lớn: 10 7 đến 10 9 bản ghi.
  • Rất lớn: 10 9 hoặc nhiều hơn số lượng bản ghi.

Như poster dkretz đã đề xuất, bạn cũng có thể nghĩ về nó về các thuộc tính mà mỗi loại cơ sở dữ liệu có. Phân loại nó theo cách này, tôi muốn nói:

  • Nhỏ: Hiệu suất không phải là mối quan tâm. Các truy vấn của bạn chạy tốt mà không cần thực hiện bất kỳ tối ưu hóa đặc biệt nào. Bạn chỉ thấy sự khác biệt hiệu suất biên khi sử dụng các cải tiến hàng đầu như chỉ mục.

  • Phương tiện: Cơ sở dữ liệu của bạn có thể có một hoặc nhiều nhân viên được chỉ định bán thời gian để bảo trì và chăm sóc nó. Những người này chú ý đến sức khỏe của cơ sở dữ liệu; trách nhiệm quản trị chính của họ là ngăn chặn các vấn đề về hiệu suất không thể chấp nhận được và giảm thiểu thời gian chết.

  • Lớn: Có thể có (các) nhân viên tận tâm với công việc là làm việc trên cơ sở dữ liệu và cải thiện hiệu suất, cũng như đảm bảo rằng các thay đổi của ứng dụng không gây ra lỗi lược đồ trong suốt thời gian tồn tại của cơ sở dữ liệu. Các chỉ số về tình trạng và sức khỏe của cơ sở dữ liệu được theo dõi chặt chẽ. Cần có kiến ​​thức chuyên môn đáng kể để hiểu và thực hiện tối ưu hóa.

  • Rất lớn: Cơ sở dữ liệu lưu trữ một lượng lớn thông tin phải có thể truy cập được. Tối ưu hóa hiệu suất là hoàn toàn cần thiết để vắt từng chút tốc độ cuối cùng của mỗi truy vấn và nếu không có nó, cơ sở dữ liệu sẽ kém khả dụng hơn nhiều hoặc thậm chí không thể sử dụng. Cơ sở dữ liệu có thể đang sử dụng các kỹ thuật sao chép hoặc phân cụm phức tạp và sáng tạo, đẩy ranh giới của công nghệ hiện tại.

Lưu ý rằng những điều này hoàn toàn mang tính chủ quan và ai đó rất có thể có định nghĩa thay thế hoàn toàn hợp pháp về "lớn".


Câu trả lời tuyệt vời, gần như chính xác những gì tôi đã nói, rất thú vị nếu xét đến tính chủ quan và các cột mốc di chuyển.
Peter Wone

Câu trả lời xuất sắc John. Rất ngắn gọn. Tôi cố gắng giải thích giống nhau nhưng đã đi trên một con đường khác nhau và phức tạp hơn: S
vmarquez

Tôi thích phần thứ hai của câu trả lời nhưng phần đầu tiên, liên quan đến kích thước và số lượng bản ghi, tôi nghĩ hơi sai lầm. Bạn có thể có một bảng thực sự đơn giản với rất nhiều bản ghi, hoặc một số lượng bản ghi nhỏ nhưng tổ chức các bảng rất phức tạp.
Outlaw Programmer

Trên thực tế, tôi muốn nói rằng một trong hai ví dụ của bạn cũng có thể đủ tiêu chuẩn lớn. Bạn có gợi ý rằng một từ điển khóa thuộc tính khổng lồ bao gồm một bảng duy nhất với 50 triệu bản ghi trên thực tế là một "cơ sở dữ liệu nhỏ" không?
John Feminella

Tôi muốn nói rằng thật hợp pháp khi coi trò chuyện là nhỏ. Ngược lại, hãy xem xét một cấu trúc lược đồ cực kỳ phức tạp bao gồm 10.000 bảng, nhưng chỉ chứa tổng cộng 5 hàng. Đây có phải là "cơ sở dữ liệu lớn" không?
John Feminella

27

Một cách để tìm ra nó là quan sát các truy vấn thử nghiệm của bạn.

Một cơ sở dữ liệu nhỏ là một trong đó các chỉ mục không quan trọng.

Cơ sở dữ liệu trung bình là cơ sở dữ liệu mà các truy vấn mất nhiều thời gian hơn một giây nếu bạn không có chỉ mục thích hợp.

Cơ sở dữ liệu lớn là cơ sở dữ liệu mà các truy vấn thường mất hàng giờ để tối ưu hóa, sử dụng kết hợp thiết kế truy vấn, sửa đổi chỉ mục và nhiều chu kỳ kiểm tra.


@le dorfier: BTW Tôi tin rằng bạn đã đúng về bản cập nhật nguyên tử với tối đa chọn (mặc dù tôi vẫn sẽ không làm điều đó theo cách đó)
Mitch Wheat

4

Cơ sở dữ liệu lớn là những thứ buộc bạn phải ngừng sử dụng cơ sở dữ liệu quan hệ.

Nói cách khác, một cơ sở dữ liệu quan hệ, được chuẩn hóa, nơi tất cả các chỉ mục trên thế giới không thể giúp bạn đáp ứng các yêu cầu về thời gian phản hồi của mình vì các JOIN khổng lồ.

Nếu bạn đã từng phải từ bỏ cơ sở dữ liệu quan hệ để làm việc khác, bạn có thể là một nhà phát triển cơ sở dữ liệu kém, không có chuyên gia DBA hoặc có một cơ sở dữ liệu rất lớn.


3

“Cơ sở dữ liệu lớn” thực sự là một khái niệm viển vông. Đã có những câu trả lời và ý kiến ​​rất khác nhau được đăng trong các câu trả lời cho câu hỏi này. Một số cách tiếp cận để định nghĩa Cơ sở dữ liệu “nhỏ”, “vừa” và “lớn” có thể có ý nghĩa hơn những cách khác NHƯNG VẬY, tại một số điểm, tôi cho rằng mỗi định nghĩa đều đúng, đúng và hợp lệ.

Một số định nghĩa có ý nghĩa hơn những định nghĩa khác bởi vì chúng tập trung vào các khía cạnh khác nhau về tầm quan trọng đối với việc thiết kế, lập trình, sử dụng, bảo trì và quản trị Cơ sở dữ liệu và những khía cạnh khác nhau này là điều thực sự quan trọng đối với Cơ sở dữ liệu có thể sử dụng được. Chỉ xảy ra rằng tất cả những khía cạnh này đều bị ảnh hưởng bởi khái niệm "Kích thước cơ sở dữ liệu".

Vì vậy, Điều này có nghĩa là không quan trọng nếu bạn có thể xác định xem một Cơ sở dữ liệu cụ thể có lớn hay không?

Chắc chắn không. Điều đó có nghĩa là bạn sẽ áp dụng khái niệm khác nhau trong khi đánh giá các khía cạnh thiết kế / vận hành / quản trị khác nhau của Cơ sở dữ liệu của bạn. Nó cũng có nghĩa là mọi thời điểm khái niệm này sẽ là viển vông.

Ví dụ: chiến lược Chỉ mục cơ sở dữ liệu (một khía cạnh của thiết kế Cơ sở dữ liệu) bị ảnh hưởng bởi số lượng bản ghi cho mỗi bảng (thước đo “kích thước”), bởi kích thước bản ghi lần đếm bản ghi (một thước đo khác của “kích thước”) và bởi Truy vấn Vs . Tỷ lệ hoạt động Tạo / Cập nhật / Xóa (một khía cạnh của việc sử dụng Cơ sở dữ liệu).

Thời gian phản hồi truy vấn sẽ tốt hơn nếu các chỉ mục được sử dụng cho các bảng có số lượng bản ghi lớn. Tùy thuộc vào bản chất của mệnh đề WHERE, ORDER BY và các mệnh đề tổng hợp bản ghi, bạn có thể cần một số chỉ mục cho các bảng nhất định.

Các hoạt động Tạo, Cập nhật và Xóa bị ảnh hưởng tiêu cực khi số lượng chỉ mục trên (các) bảng bị ảnh hưởng tăng lên. Nhiều chỉ mục hơn cho một bảng bị ảnh hưởng có nghĩa là nhiều thay đổi hơn mà RDBMS phải thực hiện, dành nhiều thời gian hơn và nhiều tài nguyên hơn để áp dụng những thay đổi đó.

Ngoài ra, nếu RDBMS của bạn dành nhiều thời gian hơn để áp dụng những thay đổi đó, thì các khóa cũng được duy trì trong thời gian dài hơn, ảnh hưởng đến thời gian phản hồi các truy vấn khác được gửi đến hệ thống cùng một lúc.

Vì vậy, làm thế nào để bạn cân bằng số lượng và thiết kế các chỉ mục của bạn? Làm thế nào để bạn biết liệu bạn có cần một chỉ mục bổ sung hay không và nếu bằng cách thêm chỉ mục đó, bạn sẽ không tạo ra tác động tiêu cực lớn đến thời gian phản hồi truy vấn? Trả lời: Bạn kiểm tra và lập cấu hình cơ sở dữ liệu của mình dựa trên tải mục tiêu theo yêu cầu tải / hiệu suất của bạn và phân tích dữ liệu cấu hình để khám phá xem có cần tối ưu hóa thêm / thiết kế lại / chỉ mục hay không.

Các chiến lược Chỉ mục khác nhau được yêu cầu cho các Truy vấn khác nhau. Tạo / Cập nhật / Xóa tỷ lệ hoạt động. Nếu Cơ sở dữ liệu của bạn đang chịu tải nặng các truy vấn nhưng hiếm khi được cập nhật, hiệu suất cho ứng dụng tổng thể sẽ tốt hơn nếu bạn thêm mọi chỉ mục để cải thiện thời gian phản hồi truy vấn. Mặt khác, nếu Cơ sở dữ liệu của bạn liên tục được cập nhật nhưng không có các hoạt động truy vấn lớn, thì hiệu suất sẽ tốt hơn nếu bạn sử dụng ít chỉ mục hơn.

Tất nhiên còn có các khía cạnh khác: Thiết kế lược đồ cơ sở dữ liệu, Chiến lược lưu trữ, Thiết kế mạng, Chiến lược sao lưu, Quy trình lưu trữ / Kích hoạt / v.v. lập trình, Lập trình ứng dụng (dựa trên Cơ sở dữ liệu), v.v. Tất cả các khía cạnh này bị ảnh hưởng khác nhau bởi các khái niệm riêng biệt về “kích thước” (kích thước bản ghi, số lượng bản ghi, kích thước chỉ mục, số chỉ mục, thiết kế lược đồ, kích thước lưu trữ, v.v.).

Tôi muốn có thêm thời gian vì chủ đề này rất hấp dẫn. Tôi hy vọng đóng góp nhỏ này đóng vai trò là điểm khởi đầu cho bạn trong thế giới SQL hấp dẫn này.


3

Bạn phải tính đến tiến bộ phần cứng cho định nghĩa này:

  1. Cơ sở dữ liệu nhỏ: bộ làm việc phù hợp với RAM vật lý của một máy chủ hàng hóa (hiện tại khoảng 16GB)

  2. Cơ sở dữ liệu trung bình: phù hợp với một hoặc một số ổ cứng hàng hóa (thông qua RAID) trên một máy duy nhất (hiện tại lên đến vài TB)

  3. Cơ sở dữ liệu lớn: Dữ liệu cần được phân phối trên nhiều máy chủ hàng hóa để phù hợp (lên đến một số PB hiện nay.)


2

Theo bài báo wikipedia trên Cơ sở dữ liệu rất lớn

Cơ sở dữ liệu rất lớn, hay VLDB, là cơ sở dữ liệu có chứa một số lượng cực lớn các bộ dữ liệu (hàng cơ sở dữ liệu), hoặc chiếm một không gian lưu trữ hệ thống tệp vật lý cực kỳ lớn. Định nghĩa phổ biến nhất của VLDB là cơ sở dữ liệu chiếm hơn 1 terabyte hoặc chứa vài tỷ hàng, mặc dù tự nhiên định nghĩa này thay đổi theo thời gian.


2

Nếu bạn có một cơ sở dữ liệu đủ lớn mà bạn không thể "sao lưu nó" để đưa vào một hộp phát triển hoặc thử nghiệm, thì bạn có thể có một "cơ sở dữ liệu lớn".


0

Tôi nghĩ một cái gì đó như wikipedia, hoặc dữ liệu điều tra dân số Hoa Kỳ là một cơ sở dữ liệu 'lớn'. Danh sách địa chỉ cá nhân hoặc việc cần làm của tôi là một cơ sở dữ liệu nhỏ. Một cơ sở dữ liệu có kích thước trung bình nằm ở giữa.

Bạn có thể thử và xác định kích thước theo số lượng máy chủ bạn cần. Cơ sở dữ liệu nhỏ là một thành phần của ứng dụng bạn chạy trên máy tính để bàn của mình, cơ sở dữ liệu cỡ trung bình sẽ là một máy chủ mysql (bất kỳ) ở đâu đó và một cơ sở dữ liệu lớn sẽ yêu cầu nhiều máy chủ với một số loại hỗ trợ sao chép / chuyển đổi dự phòng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.