Rumah  >  Artikel  >  pangkalan data  >  Mengapa Indeks MySQL VARCHAR Terhad kepada 255 Aksara dalam UTF8?

Mengapa Indeks MySQL VARCHAR Terhad kepada 255 Aksara dalam UTF8?

Linda Hamilton
Linda Hamiltonasal
2024-11-20 15:46:16919semak imbas

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!

Kenyataan:
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