MySQL InnoDB Индексирование столбца длиннее максимальной длины - PullRequest
0 голосов
/ 14 марта 2019

У меня есть таблица в MySQL, где я храню некоторые URL-адреса.Ширина столбца составляет 2048 символов.Большинство сохраненных URL-адресов будут длиннее 1000 символов.Я часто выполняю поиск по URL, поэтому я хотел проиндексировать его, но максимальная длина, допустимая для индекса, составляет 255 символов.

Я все еще добавил индекс, и кажется, что столбец частично проиндексирован.Как это работает?И является ли он производительным?

Вот запрос объяснения, который я выполнил при поиске по URL

EXPLAIN 
SELECT `code` 
FROM tinyurl 
WHERE url ='//mysite.com/iframe.php?target=product&lookupid=5e6183640e7f943fc21bbc2be373b4b0&code=41432'; 

Результаты: enter image description here

ПРИМЕЧАНИЕ. Фактическое значение url было длиннее. Я удалил некоторые элементы для целей конфиденциальности

Я вижу, что из ключа url используется 768 байт, но как это на самом деле будет работать?Индексирует ли это только первые 255 символов для столбца URL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...