Fehlerbehebung „Mysql::Error: Specified key was too long; max key length is 1000 bytes“
Beim Versuch, Folgendes auszuführen Befehle:
script/generate acts_as_taggable_on_migration rake db:migrate
Sie können auf das stoßen Fehler:
Mysql::Error: Specified key was too long; max key length is 1000 bytes: CREATE INDEX `index_taggings_on_taggable_id_and_taggable_type_and_context` ON `taggings` (`taggable_id`, `taggable_type`, `context`)
Ursache
Dieser Fehler tritt aufgrund von Einschränkungen auf, die die Speicher-Engines von MySQL hinsichtlich der Größe von Indizes auferlegen. MyISAM-Engines, die üblicherweise mit Ruby on Rails verwendet werden, begrenzen die Indexgröße auf 1.000 Bytes.
Lösung
Um dieses Problem zu beheben, ziehen Sie die folgenden Strategien in Betracht:
CREATE INDEX example_idx_id ON YOUR_TABLE(taggable_id) CREATE INDEX example_idx_type ON YOUR_TABLE(taggable_type)
Zusätzliche Konfiguration
Wie in Ihren Datenbankkodierungseinstellungen angegeben, ist Ihre Datenbank Für die Verwendung der Zeichenkodierung „latin1“ konfiguriert. Dies kann die Wirksamkeit von Indizes für Spalten mit UTF-8-Codierung einschränken. Um die Indexleistung zu verbessern, sollten Sie Ihre Datenbank in die UTF-8-Kodierung konvertieren.
Das obige ist der detaillierte Inhalt vonSo lösen Sie den MySQL-Fehler: „Der angegebene Schlüssel war zu lang; die maximale Schlüssellänge beträgt 1000 Byte'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!