Apabila mencipta jadual MySQL dengan indeks komposit, pengguna mungkin menghadapi ralat "Kunci yang ditentukan terlalu panjang; panjang kunci maksimum ialah 1000 bait". Ralat ini menunjukkan bahawa gabungan panjang lajur diindeks melebihi saiz storan maksimum yang dibenarkan iaitu 1000 bait.
Isu dalam coretan kod yang disediakan terletak pada panjang berlebihan indeks komposit indeks:
KEY `index` (`parent_menu_id`,`menu_link`,`plugin`,`alias`)
Untuk menyelesaikan ralat ini, pertimbangkan berikut:
1. Optimumkan Panjang Indeks:
KEY `index` (`parent_menu_id`,`menu_link`(50),`plugin`(50),`alias`(50))
2. Tentukan Panjang Awalan Optimum:
Gunakan pertanyaan berikut untuk menentukan panjang awalan optimum untuk lajur tertentu:
SELECT ROUND(SUM(LENGTH(`menu_link`)<10)*100/COUNT(`menu_link`),2) AS pct_length_10, ROUND(SUM(LENGTH(`menu_link`)<20)*100/COUNT(`menu_link`),2) AS pct_length_20, ROUND(SUM(LENGTH(`menu_link`)<50)*100/COUNT(`menu_link`),2) AS pct_length_50, ROUND(SUM(LENGTH(`menu_link`)<100)*100/COUNT(`menu_link`),2) AS pct_length_100 FROM `pds_core_menu_items`;
Sebagai contoh, jika pertanyaan kembali:
+---------------+---------------+---------------+----------------+ | pct_length_10 | pct_length_20 | pct_length_50 | pct_length_100 | +---------------+---------------+---------------+----------------+ | 21.78 | 80.20 | 100.00 | 100.00 | +---------------+---------------+---------------+----------------+
Ia menunjukkan bahawa 80% daripada rentetan adalah kurang daripada 20 aksara, jadi panjang awalan 50 sudah memadai.
3. Laraskan Jenis Data INT:
Jenis data INT diikuti dengan argumen berangka (cth., INT(1)) tidak menjejaskan storan atau julat nilai. Jenis data INT sentiasa menduduki 4 bait dan membenarkan nilai dalam julat -2147483648 hingga 2147483647. Argumen berangka hanya mempengaruhi padding semasa paparan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat MySQL 1071: 'Kunci yang ditentukan terlalu panjang; panjang kunci maksimum ialah 1000 bait'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!