Phiên bản nào? CHARACTER SET gì ? Và các vấn đề khác. Trước phiên bản 5.5, đã có CHARACTER SET utf8 , cần tối đa 3 byte cho mỗi ký tự, nhưng không cần utf8mb4 , cần đến 4. Với 5,7 (10,2?), vấn đề đã được 'giải quyết'. Trong khi đó, một chỉ mục đã được giới hạn ở 767 byte; không phải nó là 3072.
Chỉ mục của bạn trên VARCHAR(500) cần 1500 hoặc 2000 byte.
Đây là danh sách 5 điều tôi có thể làm: https://mysql.rjweb .org / doc.php / limit # 767_limit_in_innodb_indexes
Bạn cần phải chọn trong số họ dựa trên lỗ hổng nào mà bạn có thể sống chung.