Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Decimal VS Int trong MySQL?

Nó có thể phụ thuộc vào phiên bản MySQL bạn đang sử dụng. Xem tại đây .

Trước MySQL 5.0.3, kiểu DECIMAL được lưu trữ dưới dạng chuỗi và thường sẽ chậm hơn. Tuy nhiên, vì MySQL 5.0.3 nên kiểu DECIMAL được lưu trữ ở định dạng nhị phân nên với kích thước DECIMAL của bạn ở trên, có thể không có khác biệt nhiều về hiệu suất.

Vấn đề hiệu suất chính sẽ là dung lượng bị chiếm dụng bởi các loại khác nhau (với DECIMAL chậm hơn). Với MySQL 5.0.3+, điều này dường như ít gặp vấn đề hơn, tuy nhiên nếu bạn thực hiện tính toán số trên các giá trị như một phần của truy vấn, có thể có một số khác biệt về hiệu suất. Điều này có thể đáng để thử nghiệm vì không có dấu hiệu nào trong tài liệu mà tôi có thể xem.

Chỉnh sửa: Liên quan đến int(10) unsigned , tôi lấy giá trị này ở mệnh giá chỉ là một số nguyên 4 byte. Tuy nhiên, giá trị này có giá trị tối đa là 4294967295, điều này hoàn toàn không cung cấp cùng một dải số với DECIMAL(10,0) unsigned .

Như @Unreason đã chỉ ra, bạn sẽ cần sử dụng bigint để bao gồm đầy đủ các số có 10 chữ số, đẩy kích thước lên đến 8 byte.

Một sai lầm phổ biến là khi chỉ định kiểu cột số trong MySQL, mọi người thường nghĩ rằng số trong ngoặc có ảnh hưởng đến kích thước của số mà chúng có thể lưu trữ. Nó không. Phạm vi số hoàn toàn dựa trên loại cột và nó có dấu hay không dấu. Số trong ngoặc dành cho mục đích hiển thị kết quả và không ảnh hưởng đến các giá trị được lưu trữ trong cột. Nó cũng sẽ không ảnh hưởng đến việc hiển thị kết quả trừ khi bạn chỉ định ZEROFILL cũng như tùy chọn trên cột.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Làm thế nào để phân tích cú pháp một giá trị chuỗi thành định dạng DATETIME bên trong một câu lệnh INSERT?

  2. JSON_STORAGE_SIZE () - Tìm Kích thước Lưu trữ của Tài liệu JSON trong MySQL

  3. SQL:Cách chọn một bản ghi mỗi ngày, giả sử rằng mỗi ngày chứa nhiều hơn 1 giá trị MySQL

  4. Đầu ra MYSQL ở định dạng cây HOẶC Thêm cấp độ (Parent-Child)

  5. Đá quý dm_mysql_adapter của Datamapper có được hỗ trợ trên windows không?