


Ralat MySql: "Kunci Yang Ditentukan Terlalu Panjang"
Dalam menanyakan pangkalan data MySql, ralat "Kunci yang ditentukan terlalu panjang" boleh timbul apabila membuat jadual dengan panjang kunci yang panjang. Isu ini sering berlaku apabila menggunakan berbilang lajur dalam satu indeks.
Kajian Kes dengan Jadual pds_core_menu_items
Pertanyaan yang disediakan cuba mencipta jadual dengan indeks komposit pada lajur parent_menu_id, menu_link, pemalam dan alias. Lajur ini ialah jenis data VARCHAR(255).
Penjelasan Isu
Seperti yang @Devart nyatakan, panjang gabungan lajur ini melebihi panjang kunci maksimum yang dibenarkan 1000 bait. Disebabkan oleh sekatan ini, penciptaan indeks gagal dengan ralat yang ditentukan.
Penyelesaian: Pengindeksan Awalan
Amalan terbaik untuk menangani isu ini melibatkan penggunaan pengindeksan awalan. Dengan menggunakan indeks awalan, hanya subrentetan kiri data asal diindeks, mengurangkan saiz indeks dengan ketara dan meningkatkan kecekapan.
Menentukan Panjang Awalan Optimum
Untuk menentukan panjang awalan yang optimum untuk setiap lajur, laksanakan yang berikut pertanyaan:
SELECT ROUND(SUM(LENGTH(`column_name`)<p>Ganti column_name dengan lajur yang sedang dianalisis dan table_name dengan jadual yang mengandungi lajur. Analisis output untuk mengenal pasti panjang subrentetan terkecil yang meliputi peratusan baris tertinggi.</p><p><strong>Pertanyaan Kemas Kini</strong></p><p>Dalam contoh yang disediakan, mengindeks subrentetan sebanyak 50 aksara sudah memadai , seperti yang ditunjukkan oleh hasil pertanyaan. Berikut ialah pertanyaan yang dikemas kini:</p><pre class="brush:php;toolbar:false">KEY `index` (`parent_menu_id`,`menu_link`(50),`plugin`(50),`alias`(50))
Nota Tambahan
Ralat juga boleh berlaku apabila menggunakan jenis data INT(1) dan INT(32). Walaupun jenis data ini tidak mempunyai kesan pada saiz storan atau julat nilai, ia mungkin mempengaruhi cara nilai dipaparkan jika pilihan ZEROFILL digunakan.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 'Kunci Yang Ditentukan Terlalu Panjang'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Menguasai kaedah menambah pengguna MySQL adalah penting untuk pentadbir pangkalan data dan pemaju kerana ia memastikan keselamatan dan kawalan akses pangkalan data. 1) Buat pengguna baru menggunakan perintah CreateUser, 2) Berikan kebenaran melalui perintah geran, 3) Gunakan flushprivileges untuk memastikan kebenaran berkuatkuasa, 4) kerap mengaudit dan membersihkan akaun pengguna untuk mengekalkan prestasi dan keselamatan.

ChooseCHARforfixed-lengthdata,VARCHARforvariable-lengthdata,andTEXTforlargetextfields.1)CHARisefficientforconsistent-lengthdatalikecodes.2)VARCHARsuitsvariable-lengthdatalikenames,balancingflexibilityandperformance.3)TEXTisidealforlargetextslikeartic

Amalan terbaik untuk mengendalikan jenis data rentetan dan indeks dalam MySQL termasuk: 1) Memilih jenis rentetan yang sesuai, seperti char untuk panjang tetap, varchar untuk panjang berubah, dan teks untuk teks besar; 2) berhati-hati dalam pengindeksan, elakkan daripada mengindeks, dan buat indeks untuk pertanyaan umum; 3) Gunakan indeks awalan dan indeks teks penuh untuk mengoptimumkan carian rentetan panjang; 4) Secara kerap memantau dan mengoptimumkan indeks untuk memastikan indeks kecil dan cekap. Melalui kaedah ini, kita dapat mengimbangi membaca dan menulis prestasi dan meningkatkan kecekapan pangkalan data.

Toaddauserremotelytomysql, ikuti: 1) connecttomysqlasroot, 2) createeanewuserwithremoteaccess, 3) grantnessaryaryprivileges, dan4)

TostoreStringsefficientlyinmysql, choosetherightdatypebasedonyonoeds: 1) usecharforfixed-lengtstringslikecountrycodes.2) usevarcharfarfarable-lengtstringslikENAMES.3)

Mysqloffersvariouscharactersetsforstringdatatypes: 1) Latin1forwesterneuropeanlanguages, 2) UTF8FormultoLuualSupport, 3) UTF8MB4F OrextendedUnicodeincludingemojis, 4) Ucs2forfixed-widthencoding, dan5) asciiforbasiclatin.choosingherightsetensureSureSureSureSureStegrity

Gumpalan streaming memang lebih baik daripada penyimpanan langsung kerana ia mengurangkan penggunaan memori dan meningkatkan prestasi. 1) Dengan secara beransur -ansur membaca dan memproses fail, degradasi prestasi pangkalan data dan prestasi dielakkan. 2) Streaming memerlukan logik kod yang lebih kompleks dan boleh meningkatkan bilangan operasi I/O.

Mysqlstringtypesimpactstorageandperformanceasfollows: 1) che-chexed-length, selingasingthesamestoragespace, whycanbefasterbutlessspace-efficient.2) varcharisvariable-length, morespace-efficientbutpotoTanSlower.3)


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa
