Saya memiliki aplikasi yang menggunakan tabel PostgreSQL. Tabelnya sangat besar (miliaran baris) dan memiliki kolom yang merupakan bilangan bulat.
The integer
bisa sampai 6 digit, yaitu 0-999,999, tidak ada negatif.
Saya berpikir untuk mengubahnya numeric(6,0)
.
Apakah ini ide yang bagus? Akan numeric(6,0)
mengambil byte lebih sedikit? Bagaimana dengan kinerjanya (tabel ini banyak ditanyakan)?
postgresql
Ofiris
sumber
sumber
numeric
kolomint
?Jawaban pasti adalah tidak untuk semua pertanyaan Anda. Integer selalu merupakan cara untuk mencari apa pun yang dapat Anda gunakan. (Uang, misalnya)
Pikirkan dulu sebentar. Ketika mesin basis data menemukan bilangan bulat, ia menangani dengan sangat efisien karena tidak ada banyak interpretasi untuk itu. Ini adalah bilangan bulat. Tipe numerik berperilaku lebih seperti string. Mesin pertama-tama harus mencari tahu bagian mana yang sebelum dan sesudah titik desimal, dan memijatnya dengan tepat untuk melakukan operasi numerik.
Menggunakan integer akan selalu lebih efisien daripada numerik, meskipun tipe numerik seringkali lebih nyaman bagi manusia.
sumber
NUMERIC
. Bilangan bulat berskala jauh lebih baik daripada menggunakan nilai floating point untuk uang.