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

Bagaimana cara menyimpan IP di mySQL

Saya sarankan untuk melihat jenis kueri apa yang akan Anda jalankan untuk memutuskan format mana yang Anda adopsi.

Hanya jika Anda perlu menarik atau membandingkan masing-masing oktet, Anda harus mempertimbangkan untuk membaginya menjadi beberapa bidang terpisah.

Jika tidak, simpan sebagai bilangan bulat 4 byte. Itu juga memiliki bonus yang memungkinkan Anda menggunakan INET_ATON() dan INET_NTOA() fungsi.

Kinerja vs. Ruang

Penyimpanan:

Jika Anda hanya akan mendukung alamat IPv4 maka tipe data Anda di MySQL dapat berupa UNSIGNED INT yang hanya menggunakan 4 byte penyimpanan.

Untuk menyimpan oktet individual, Anda hanya perlu menggunakan UNSIGNED TINYINT tipe data, bukan SMALLINTS , yang akan menggunakan masing-masing 1 byte penyimpanan.

Kedua metode akan menggunakan penyimpanan serupa dengan mungkin sedikit lebih banyak untuk bidang terpisah untuk beberapa overhead.

Info lebih lanjut:

Kinerja:

Menggunakan satu bidang akan menghasilkan kinerja yang jauh lebih baik, ini adalah perbandingan tunggal daripada 4. Anda menyebutkan bahwa Anda hanya akan menjalankan kueri terhadap seluruh alamat IP, jadi tidak perlu memisahkan oktet. Menggunakan INET_* fungsi MySQL akan melakukan konversi antara teks dan representasi integer sekali untuk perbandingan.



  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 mengatur kolom tabel yang ada

  2. Pemotongan data:Nilai tanggal waktu salah:''

  3. Bandingkan nilai stempel waktu dan tetapkan nilai untuk masing-masing jika ada perubahan

  4. Cara menggunakan SUBSTRING() di MySQL

  5. Pilih bagian dari MySQL Blob Field