Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mysql::Error:Kunci yang ditentukan terlalu panjang; panjang kunci maksimal adalah 1000 byte

Ini hanya masalah MySQL -

MySQL memiliki mesin yang berbeda - MyISAM, InnoDB, Memory...

MySQL memiliki batasan berbeda pada jumlah ruang yang dapat Anda gunakan untuk tentukan indeks pada kolom - untuk MyISAM adalah 1.000 byte; ini 767 untuk InnoDB . Dan tipe data kolom tersebut penting - untuk VARCHAR , itu 3x jadi indeks pada VARCHAR(100) akan membutuhkan 300 byte tersebut (karena 100 karakter * 3 =300).

Untuk mengakomodasi beberapa pengindeksan saat Anda mencapai nilai tertinggi, Anda dapat menentukan indeks terkait dengan bagian dari tipe data kolom:

CREATE INDEX example_idx ON YOUR_TABLE(your_column(50))

Dengan asumsi bahwa your_column adalah VARCHAR(100) , indeks pada contoh di atas hanya akan berada pada 50 karakter pertama. Mencari data di luar karakter ke-50 tidak akan dapat menggunakan indeks.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Temukan catatan dari satu tabel yang tidak ada di tabel lain

  2. Dukungan transaksi mesin MyIsam

  3. Bagaimana cara melakukan penyisipan massal di MySQL?

  4. Mengapa saya mendapatkan Cannot pass parameter 2 dengan kesalahan referensi ketika saya menggunakan bindParam dengan nilai konstan?

  5. Fungsi MySQL LOG() – Mengembalikan Logaritma Natural dari suatu Nilai