Chà, bạn là chi tiêu nhiều dữ liệu hơn để lưu trữ những con số mà bạn sẽ không bao giờ thực sự đạt được.
bigint tăng lên đến 9.223.372.036.854.775.807 trong 8 Byte
int lên đến 2,147,483,647 trong 4 byte
Một NUMERIC (38,0) sẽ mất, nếu tôi làm đúng phép toán là 17 byte.
Không phải là một sự khác biệt quá lớn, mà là:kiểu dữ liệu nhỏ hơn =nhiều hàng hơn trong bộ nhớ (hoặc ít trang hơn cho cùng một số hàng) =ít I / O ổ đĩa hơn để thực hiện tra cứu (tìm kiếm trang dữ liệu hoặc được lập chỉ mục). Tương tự đối với các trang nhân bản, nhật ký, v.v.
Đối với SQL Server:INT là một tiêu chuẩn IEEE và do đó, CPU dễ dàng so sánh hơn, vì vậy bạn sẽ nhận được hiệu suất tăng nhẹ bằng cách sử dụng INT so với NUMERIC (là một định dạng thập phân đóng gói). (Lưu ý trong Oracle, nếu phiên bản hiện tại khớp với các phiên bản cũ hơn mà tôi lớn lên, TẤT CẢ các kiểu dữ liệu đều được đóng gói để INT bên trong khá giống với một NUMERIC (x, 0) nên không có sự khác biệt về hiệu suất)
Vì vậy, trong sơ đồ tổng thể - nếu bạn có nhiều đĩa, RAM và I / O dự phòng, hãy sử dụng bất kỳ loại dữ liệu nào bạn muốn. Nếu bạn muốn đạt được hiệu suất cao hơn một chút, hãy tiết chế hơn một chút.
Nếu không vào thời điểm này, tôi sẽ để nó như vậy. Không cần thay đổi mọi thứ.