Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql::Грешка:Посоченият ключ беше твърде дълъг; максималната дължина на ключа е 1000 байта

Това е само проблем с MySQL -

MySQL има различни двигатели - MyISAM, InnoDB, Memory...

MySQL има различни ограничения за количеството пространство, което можете да използвате за дефинирайте индекси на колона(и) - за MyISAM това е 1000 байта; това е 767 за InnoDB . И типът данни на тези колони има значение - за VARCHAR , това е 3x, така че индекс на VARCHAR(100) ще заеме 300 от тези байта (защото 100 знака * 3 =300).

За да осигурите известна индексация, когато достигнете стойността на тавана, можете да дефинирате индекса по отношение на части от типа данни на колоната:

CREATE INDEX example_idx ON YOUR_TABLE(your_column(50))

Ако приемем, че your_column е VARCHAR(100) , индексът в примера по-горе ще бъде само на първите 50 знака. Търсенето на данни над 50-ия знак няма да може да използва индекса.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 10 Въпроса за интервю за база данни на MySQL за начинаещи и средно напреднали

  2. Добавяне на множество колони СЛЕД определена колона в MySQL

  3. Как да прехвърля char към цяло число, докато отправям заявка в django ORM?

  4. MySQL в облака - плюсове и минуси на Amazon RDS

  5. Клауза за MySQL UNION