Mengapa Indeks MySQL VARCHAR Terhad kepada 255 Aksara dalam UTF8?

Linda Hamilton
Lepaskan: 2024-11-20 15:46:16
asal
917 orang telah melayarinya

Why Are MySQL VARCHAR Indexes Limited to 255 Characters in UTF8?

Panjang Indeks VARCHAR MySQL

Isu:

Dalam MySQL, lajur varchar dengan awalan indeks yang lebih besar daripada 255 aksara tidak digunakan untuk mengisih data, walaupun mempunyai indeks yang mencukupi saiz.

Jawapan:

MySQL menganggap 3 bait setiap aksara utf8 dalam pengiraan indeks. Dengan had indeks 767-bait, ini diterjemahkan kepada maksimum 255 aksara.

Penjelasan:

  • Saiz indeks MySQL ditentukan dalam bait, walaupun untuk jenis data bukan binari seperti VARCHAR.
  • Saiz indeks awalan maksimum setiap lajur ialah 767 bait.
  • Untuk lajur utf8, MySQL menganggap setiap aksara menduduki 3 bait.
  • Oleh itu, 767 / 3 = 255 aksara ialah panjang indeks maksimum untuk lajur utf8.

Tambahan Pertimbangan:

  • Kekangan unik pada lajur utf8 dihadkan kepada 255 aksara kerana keseluruhan nilai sel diindeks.
  • Indeks biasa boleh digunakan pada lajur yang lebih besar daripada 255 aksara , tetapi hanya akan mengindeks 255 aksara pertama.
  • Jika kebanyakan aksara dalam lajur ialah ASCII (aksara 1-bait), mungkin untuk memuatkan lebih daripada 255 aksara ke dalam indeks, tetapi pengiraan MySQL tidak mengambil kira perkara ini.
  • Dengan pilihan innodb_large_prefix didayakan, had indeks boleh ditingkatkan kepada 3072 bait untuk jadual menggunakan baris DINAMIK atau COMPRESSED format.

Atas ialah kandungan terperinci Mengapa Indeks MySQL VARCHAR Terhad kepada 255 Aksara dalam UTF8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan