Khi các giá trị tăng tới số tối đa trong CSDL thì xử lý như thế nào? (không chỉ là ID)

sql
mysql

(Văn Hoài Đức) #1

Tuy là mình chưa làm việc với DB cực lớn như vậy,
tuy nhiên mình vẫn thắc mắc là ta sẽ phải làm gì nếu như giá trị của các cột đạt tới giá trị tối đa

Ví dụ cột ID (primary key, auto increasing) của bảng SinhVien đạt tới giá trị tối đa thì ta cần làm gì, giá trị tối đa ở đây là không thể nào tăng chứa được nữa.

Vậy lúc này ta cần làm gì để vẫn giữ dữ liệu cũ nhưng vẫn có nơi để chứa giá trị mới.


(Đoàn Trọng Hiếu 😂) #2

Dùng 1 server DB khác @@ =))


(Văn Hoài Đức) #3

Cũng là 1 ý, nhưng mà nếu cần lấy dữ liệu của cả 2 thì sao, có thể join 2 DB ở 2 sv khác đc ko nhỉ ?


(Vô Thin) #4

Cứ đè đầu thằng thiết kế cơ sở dữ liệu ra mà đấm đá chứ việc gì phải lăn tăn. Cách đây vài năm, có trường hợp thú vị xảy ra đó là thằng cha PSY gì đó của Hàn Quốc hát Gangnam Sờ Tai nào đó, lượt xem vượt quá con số 4,1 tỉ, nên YouTube buộc phải thay đổi đoạn code và/ hoặc thay đổi lại kiểu dữ liệu trong cơ sở dữ liệu.

Túm lại: với những CSDL có quy mô lớn, sẽ luôn có chuyên gia về CSDL riêng để họ lo liệu, chứ không phó thác vào mấy ông viết code “tất cả trong một” đâu.

Còn mấy ông viết code thì hay ngồi tưởng tượng ra mấy chuyện tào lao, cuối cùng code viết không xài được. Bớt nghĩ vớ vẩn giùm cái.


(Hung) #5

Long.max_value = 9,223,372,036,854,775,807

Bạn có làm 1 table có số lượng record cỡ này được không??


(Văn Hoài Đức) #6

Không phải coder cũng phải dựa theo CSDL được chuyên gia đó thiết kế đó để viết code query ?.
Và hiện tại mình đang thắc mắc về vấn đề dữ liệu sẽ được lưu trữ như thế nào, để mình hiểu thêm, chứ ko phải tưởng tượng chuyện tào lao.


(Văn Hoài Đức) #7

MÌnh đang thắc mắc về nếu đạt trên lượng record đó, và ví như trường hợp bt ta đều thiết kế là Int.Max_value = 2,147,483,647. Nếu như đạt đc record trên Int.Max thì chỉ cần mở rộng kiểu dữ liệu.

Ý là mình thắc mắc nếu dữ liệu phình lớn hơn ko lưu trữ đc thì phải làm gì ?
Có kỹ thuật mới gì ko ?


(Hung) #8

Cái này bác phải biết thật kĩ 1 DB.
Ví dụ Oracle được phép alter table để đổi kiểu column mà không bị mất dữ liệu. Từ int sang Long không bị mất dữ liệu trong row nên chạy được


(Ice Tea) #9

Alter table, chuyển sang kiểu dữ liệu lớn hơn, vd: int -> bigint


(Hai Lúa) #10

Kiểu LONG trong Oracle là kiểu text, ko phải số !


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?