Bagaimana cara menyimpan data biner di MySQL ?
mysql
database
binary-data
data-storage
Geoff Dalgas
sumber
sumber
Jawaban:
Jawaban oleh phpguy benar tetapi saya pikir ada banyak kebingungan dalam detail tambahan di sana.
Jawaban dasarnya adalah dalam
BLOB
tipe data / atribut domain. BLOB adalah kependekan dari Binary Large Object dan tipe data kolom itu khusus untuk menangani data biner.Lihat halaman manual yang relevan untuk MySQL .
sumber
Untuk tabel seperti ini:
Berikut ini adalah contoh PHP:
sumber
Saya sangat merekomendasikan untuk tidak menyimpan data biner dalam basis data relasional. Database relasional dirancang untuk bekerja dengan data ukuran tetap; di situlah kekuatan kinerja mereka: ingat artikel lama Joel tentang mengapa database begitu cepat? karena dibutuhkan tepat peningkatan 1 pointer untuk berpindah dari satu record ke record lainnya. Jika Anda menambahkan data BLOB dengan ukuran yang tidak terdefinisi dan sangat bervariasi, Anda akan mengacaukan kinerja.
Sebagai gantinya, simpan file dalam sistem file, dan simpan nama file dalam database Anda.
sumber
Walaupun Anda belum mengatakan apa yang Anda simpan, dan Anda mungkin memiliki alasan yang bagus untuk melakukannya, seringkali jawabannya adalah 'sebagai referensi sistem file' dan data aktual ada di sistem file di suatu tempat.
http://www.onlamp.com/pub/a/onlamp/2002/07/11/MySQLtips.html
sumber
Itu tergantung pada data yang ingin Anda simpan. Contoh di atas menggunakan
LONGBLOB
tipe data, tetapi Anda harus menyadari bahwa ada format data biner lainnya:TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB
VARBINARY
BINARY
Masing-masing memiliki kasing masing-masing. Jika diketahui panjang (pendek) (mis. Data yang dikemas) sering kali
BINARY
atauVARBINARY
akan bekerja. Mereka memiliki manfaat tambahan karena dapat melakukan indeks pada mereka.sumber
Meskipun seharusnya tidak perlu, Anda dapat mencoba
base64
menyandikan data dan mendekodekannya. Itu berarti db hanya akan memiliki karakter ascii. Ini akan membutuhkan sedikit lebih banyak ruang dan waktu, tetapi masalah apa pun yang berkaitan dengan data biner akan dihilangkan.sumber
Jika bidang - tidak disarankan - BLOB ada, Anda dapat menyimpan data dengan cara ini:
Ide diambil dari sini .
sumber
Muncul juga pertanyaan bagaimana cara memasukkan data ke BLOB. Anda bisa memasukkan data dalam pernyataan INSERT, seperti yang ditunjukkan oleh contoh PHP (meskipun Anda harus menggunakan mysql_real_escape_string alih-alih addlash). Jika file ada di server database, Anda juga dapat menggunakan LOAD_FILE MySQL
sumber
Ketika saya perlu menyimpan data biner saya selalu menggunakan
VARBINARY
format, seperti yang diperkenalkanbyd0nut
.Anda dapat menemukan dokumentasi di situs web MySQL dengan topik yang didokumentasikan 12.4.2 Jenis BINARY dan VARBINARY
Jika Anda bertanya apa yang diuntungkan, silakan lihat pertanyaan mengapa-varbinary-bukan-of-varchar
sumber