Per dokumen MySQL , ada empat jenis TEXT:
- TINYTEXT
- TEKS
- MEDIUMTEXT
- PANJANG
Berapa panjang maksimum yang bisa saya simpan di kolom setiap tipe data dengan asumsi pengkodean karakter adalah UTF-8?
Per dokumen MySQL , ada empat jenis TEXT:
Berapa panjang maksimum yang bisa saya simpan di kolom setiap tipe data dengan asumsi pengkodean karakter adalah UTF-8?
Jawaban:
Dari dokumentasi :
Ketik | Panjang maksimum ----------- + ------------------------------------- TINYTEXT | 255 (2 8 −1) byte TEXT | 65.535 (2 16 −1) byte = 64 KiB MEDIUMTEXT | 16.777.215 (2 24 −1) byte = 16 MiB PANJANG | 4.294.967.295 (2 32 −1) byte = 4 GiB
Perhatikan bahwa jumlah karakter yang dapat disimpan di kolom Anda akan tergantung pada pengkodean karakter .
A TEXT column with a maximum length of 255 (28 – 1) characters. The effective maximum length is less if the value contains multi-byte characters.
Lihat jawaban Ankan untuk lebih detail.
Perluasan jawaban yang sama
INI ADALAH MEJA ESTIMASI KASAR UNTUK KEPUTUSAN CEPAT!
xx
Type | A= worst case (x/3) | B = best case (x) | words estimate (A/4.5) - (B/4.5)
-----------+---------------------------------------------------------------------------
TINYTEXT | 85 | 255 | 18 - 56
TEXT | 21,845 | 65,535 | 4,854.44 - 14,563.33
MEDIUMTEXT | 5,592,415 | 16,777,215 | 1,242,758.8 - 3,728,270
LONGTEXT | 1,431,655,765 | 4,294,967,295 | 318,145,725.5 - 954,437,176.6
Silakan merujuk ke jawaban Chris V juga: https://stackoverflow.com/a/35785869/1881812
TINYTEXT
menghitung 1 byte + 8 byte terhadap ukuran rekaman, sedangkan VARCHAR(255)
hitungan dari 1 byte + 255 byte hingga 2 byte + 1020 byte (4 byte UTF-8 karakter) terhadap ukuran rekaman.
Naik ke tantangan @ Ankan-Zerob, ini adalah perkiraan panjang maksimum saya yang dapat disimpan dalam setiap jenis teks yang diukur dengan kata-kata :
Type | Bytes | English words | Multi-byte words
-----------+---------------+---------------+-----------------
TINYTEXT | 255 | ±44 | ±23
TEXT | 65,535 | ±11,000 | ±5,900
MEDIUMTEXT | 16,777,215 | ±2,800,000 | ±1,500,000
LONGTEXT | 4,294,967,295 | ±740,000,000 | ±380,000,000
Dalam bahasa Inggris , 4,8 huruf per kata mungkin rata-rata yang baik (misalnya norvig.com/mayzner.html ), meskipun panjang kata akan bervariasi sesuai dengan domain (mis. Bahasa lisan vs makalah akademis), jadi tidak ada gunanya terlalu tepat. Bahasa Inggris sebagian besar adalah karakter ASCII byte tunggal, dengan karakter multi-byte yang sangat jarang terjadi, sangat dekat dengan satu byte per huruf. Karakter tambahan harus diizinkan untuk spasi antar kata, jadi saya telah membulatkan dari 5,8 byte per kata. Bahasa dengan banyak aksen seperti mengatakan Polandia akan menyimpan kata-kata yang sedikit lebih sedikit, seperti misalnya bahasa Jerman dengan kata-kata yang lebih panjang.
Bahasa yang membutuhkan karakter multi-byte seperti Yunani, Arab, Ibrani, Hindi, Thailand, dll, dll biasanya memerlukan dua byte per karakter di UTF-8. Tebak liar di 5 huruf per kata, saya sudah dibulatkan dari 11 byte per kata.
Skrip CJK (Hanzi, Kanji, Hiragana, Katakana, dll) Saya tidak tahu apa-apa tentang; Saya percaya sebagian besar karakter memerlukan 3 byte di UTF-8, dan (dengan penyederhanaan besar-besaran) mereka mungkin dianggap menggunakan sekitar 2 karakter per kata, sehingga mereka akan berada di antara dua karakter lainnya. (Skrip CJK cenderung membutuhkan lebih sedikit penyimpanan menggunakan UTF-16, tergantung).
Ini tentu saja mengabaikan biaya penyimpanan dll.