Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Desimal VS Int di MySQL?

Ini mungkin tergantung pada versi MySQL yang Anda gunakan. Lihat di sini .

Sebelum MySQL 5.0.3, tipe DECIMAL disimpan sebagai string dan biasanya akan lebih lambat. Namun, karena MySQL 5.0.3 tipe DECIMAL disimpan dalam format biner sehingga dengan ukuran DECIMAL Anda di atas, mungkin tidak ada banyak perbedaan dalam kinerja.

Masalah kinerja utama adalah jumlah ruang yang digunakan oleh berbagai jenis (dengan DECIMAL lebih lambat). Dengan MySQL 5.0.3+ ini tampaknya tidak menjadi masalah, namun jika Anda akan melakukan perhitungan numerik pada nilai sebagai bagian dari kueri, mungkin ada beberapa perbedaan kinerja. Ini mungkin layak untuk diuji karena tidak ada indikasi dalam dokumentasi yang dapat saya lihat.

Sunting: Sehubungan dengan int(10) unsigned , saya menganggap ini sebagai nilai nominal hanya sebagai int 4 byte. Namun ini memiliki nilai maksimum 4294967295 yang benar-benar tidak memberikan rentang angka yang sama dengan DECIMAL(10,0) unsigned yang tidak ditandatangani .

Seperti yang ditunjukkan oleh @Unreason, Anda perlu menggunakan bigint untuk mencakup rentang penuh 10 digit angka, mendorong ukurannya hingga 8 byte.

Kesalahan umum adalah bahwa ketika menentukan jenis kolom numerik di MySQL, orang sering berpikir bahwa angka dalam tanda kurung berdampak pada ukuran angka yang dapat mereka simpan. Tidak. Rentang angka murni berdasarkan jenis kolom dan apakah itu ditandatangani atau tidak. Angka dalam kurung adalah untuk tujuan tampilan dalam hasil dan tidak berdampak pada nilai yang disimpan dalam kolom. Ini juga tidak akan berdampak pada tampilan hasil kecuali Anda menentukan ZEROFILL pilihan pada kolom juga.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ketika saya MEMASUKKAN beberapa baris ke dalam tabel MySQL, apakah id akan bertambah 1 setiap kali?

  2. Bagaimana cara mengubah susunan database, tabel, kolom?

  3. Tampilkan hasil kueri SQL di php

  4. MySQL> Tabel tidak ada. Tapi memang (atau seharusnya)

  5. django.db.utils.operationalError:(2059,Otentikasi Plugin 'caching_sha2_password')