Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Mysql::Błąd:Podany klucz był za długi; maksymalna długość klucza to 1000 bajtów

To jest wyłącznie problem MySQL -

MySQL ma różne silniki - MyISAM, InnoDB, Memory...

MySQL ma różne ograniczenia dotyczące ilości miejsca, które można wykorzystać do zdefiniuj indeksy na kolumnach - dla MyISAM jest to 1000 bajtów; to 767 dla InnoDB . A typ danych tych kolumn ma znaczenie - dla VARCHAR , to 3x, więc indeks na VARCHAR(100) zajmie 300 z tych bajtów (ponieważ 100 znaków * 3 =300).

Aby uwzględnić pewne indeksowanie po osiągnięciu wartości pułapu, możesz zdefiniować indeks w odniesieniu do części typu danych kolumny:

CREATE INDEX example_idx ON YOUR_TABLE(your_column(50))

Zakładając, że your_column to VARCHAR(100) , indeks w powyższym przykładzie będzie się składał tylko z pierwszych 50 znaków. Wyszukiwanie danych wykraczających poza 50. znak nie spowoduje użycia indeksu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Numeryczne sortowanie pola varchar w MySQL

  2. Jak ustawić hasło roota na null?

  3. Czy jest coś nie tak ze złączeniami, które nie używają słowa kluczowego JOIN w SQL lub MySQL?

  4. Uprawnienia użytkownika MySQL na współdzielonych serwerach

  5. node.js + łączenie połączeń mysql