Apa perbedaan antara tipe data BLOB dan TEXT di MySQL?

117

Apa blobdan apa itu text? Apa perbedaannya?

Kapan saya perlu menggunakan blobdan kapan saya perlukan textsebagai tipe data?

Karena untuk blobdan text, ada mediumblob== mediumtext, smallblob== small text. Apakah mereka memiliki arti yang sama?

Dan lihat ini MEDIUMBLOB, MEDIUMTEXT L+ 3 byte, di mana L < 224.

Apa L?

nencor
sumber
Saya pikir posting ini menjawab pertanyaan Anda stackoverflow.com/questions/7071662/mysql-text-vs-blob-vs-clob
earlonrails

Jawaban:

103

TEXT dan CHAR akan mengkonversi ke / dari set karakter yang mereka kaitkan dengan waktu. BLOB dan BINARY hanya menyimpan byte.

BLOB digunakan untuk menyimpan data biner sedangkan Teks digunakan untuk menyimpan string besar.

Nilai BLOB diperlakukan sebagai string biner (string byte). Mereka tidak memiliki himpunan karakter, dan pengurutan serta perbandingan didasarkan pada nilai numerik byte dalam nilai kolom.

Nilai TEXT diperlakukan sebagai string non-biner (string karakter). Mereka memiliki himpunan karakter, dan nilai diurutkan serta dibandingkan berdasarkan susunan himpunan karakter.

http://dev.mysql.com/doc/refman/5.0/en/blob.html

Darcey
sumber
3
jadi, kami menggunakan teks untuk menyimpan teks panjang seperti "posting wordpress"? dan kami menggunakan blob untuk menyimpan alamat URL yang sangat panjang? jadi mengapa kita tidak menggunakan varchar untuk menyimpan teks yang sangat panjang daripada menggunakan blob atau teks? karena dalam penghitungan memori varchar sangat sederhana, misalnya membuat tabel website (website_name varchar (30)) lalu kita isi website_name "stackoverflow" jadi memori yang dibutuhkan adalah 13byte
nencor.
5
TEXT akan diganti dengan Varchar (MAX) tetapi untuk saat ini tergantung pada versi mysql Anda, gunakan TEXT untuk posting teks besar seperti posting badan blog dll. BLOB tidak boleh digunakan untuk menyimpan alamat URL yang sangat panjang atau teks dalam jumlah besar . Biasanya digunakan untuk menyimpan gambar atau objek berbasis biner lainnya. Secara pribadi saya tidak pernah menggunakan BLOB atau TEXT dan menyimpan data dalam jumlah besar dalam file xml relatif terhadap folder berbasis id pengguna.
Darcey
saya tidak mengerti objek berbasis biner. Maksudnya, kita bisa menyimpan foto ke database menggunakan tipe data Blob ?? seperti folder? semua yang saya tahu tentang biner hanya 1 atau 0.
nencor
1
@nencor Ya, Anda dapat menyimpan gambar ke database. Anda juga bisa menyimpan arsip. Tetapi Anda tidak dapat menyimpan folder ke database, karena folder sebenarnya adalah fitur sistem file. (Anda akhirnya bisa menyimpan sistem file lengkap misalnya sebagai file iso ke database, meskipun)
Martin Thoma
@ martin-thoma Kami memiliki aplikasi di mana Server-Side memiliki database MongoDB. Komponen Seluler aplikasi menggunakan SQLLite. Perlu ada cara untuk menjembatani data antara Database MongoDB dan Database SQLLite. MongoDB menggunakan ObjectIds untuk mengidentifikasi data secara unik. Karena SQLLite (RDBMS world) tidak memiliki cara langsung untuk merepresentasikan ObjectIds MongoDB, saya bertanya-tanya apakah saya bisa menyimpan ObjectIds sebagai tipe BLOB. Apakah itu terdengar seperti solusi yang masuk akal? Apakah itu akan memperlambat kinerja? Apakah akan ada kekurangan lainnya?
CS Lewis
10

TEXT dan CHAR atau nchar yang biasanya akan diubah menjadi teks biasa sehingga Anda hanya dapat menyimpan teks seperti string.

BLOB dan BINARY yang artinya Anda dapat menyimpan data biner seperti gambar hanya dengan menyimpan byte.

DINGIN DINGIN
sumber
Apa yang Anda maksud dengan menyimpan data biner seperti gambar? maksud Anda url gambar?
nencor
10

Tipe data Blob menyimpan objek biner seperti gambar, sedangkan tipe data teks menyimpan objek teks seperti artikel halaman web

Kenny
sumber
7

BLOB adalah string biner untuk menampung sejumlah data variabel. Untuk sebagian besar BLOB digunakan untuk menyimpan gambar biner yang sebenarnya daripada path dan info file. Teks untuk karakter string dalam jumlah besar. Biasanya blog atau artikel berita merupakan bidang TEXT

L dalam hal ini digunakan untuk menyatakan kebutuhan penyimpanan. (Panjang | Ukuran + 3) selama kurang dari 224.

Referensi: http://dev.mysql.com/doc/refman/5.0/en/blob.html

James Williams
sumber
3

Menurut buku Mysql Kinerja Tinggi:

Satu-satunya perbedaan antara keluarga BLOB dan TEXT adalah bahwa jenis BLOB menyimpan data biner tanpa pemeriksaan atau kumpulan karakter, tetapi jenis TEXT memiliki kumpulan dan pemeriksaan karakter.

Alireza Rahmani Khalili
sumber
1

BLOB menyimpan data biner yang berukuran lebih dari 2 GB. Ukuran maksimal BLOB adalah 4 GB. Data biner berarti data tidak terstruktur yaitu gambar file audio file vedio tanda tangan digital

Teks digunakan untuk menyimpan string besar.

Abhishek Saha
sumber