Theo quan điểm của tôi, bigint sẽ tốt hơn. Nó được lưu trữ dưới dạng số nguyên mà MySQL sẽ hiểu nguyên bản mà không cần bất kỳ chuyển đổi nào và do đó (tôi tưởng tượng) sẽ thao tác nhanh hơn. Do đó, bạn nên mong đợi MySQL sẽ hiệu quả hơn một chút nếu bạn sử dụng bigint.
Theo trang hướng dẫn này , 9 chữ số đầu tiên trong số của bạn sẽ được lưu trữ trong một khối bốn byte và các chữ số còn lại (bạn yêu cầu tối đa 12) sẽ được lưu trữ trong một khối hai byte. Điều đó có nghĩa là cột của bạn chiếm 6 byte mỗi hàng, trái ngược với 8 byte cho bigint. Tôi đề nghị rằng trừ khi a) bạn đang lưu trữ một số lượng hàng thực sự khó hiểu, vì vậy không gian bị chiếm dụng là một mối quan tâm nghiêm trọng và b) bạn sẽ cần phải truy vấn dữ liệu được đề cập rất ít, bạn nên đi với bigint.