2015-12-16 4 views
0

У меня есть поле longtext «MYPARAMS» в моем db. (mysql, inno). Как создать индекс для этого поля?Как создать индекс для longtext (mysql, innodb)?

Я читал об индексе длины, но если индекс ограничен, то как MySQL имеет дело с хеш-коллизиями? Я хочу предотвратить ситуацию, когда два разных MYPARAMS будут иметь одинаковый индекс.

+0

«когда два разных MYPARAMS будут иметь одинаковый индекс» - это не имеет никакого смысла. Предполагаю, вы имеете в виду то же индексированное значение/тот же хеш? Столкновение хэшей может происходить и с короткими значениями - индекс хеша может содержать такие случаи. – symcbean

+0

спасибо, возможно, плохо написано, извините. Я просто хочу предотвратить столкновения. – peter

ответ

1

Я LONGTEXT поле "MYPARAMS" в моем дб

Вы, вероятно, плохо разработанную схему; имя подразумевает формат машиносчитываемых данных, а имя размера + подразумевает составную структуру данных. Это не должно проводиться в одном поле.

Как я могу создать индекс для этого поля?

Проанализируйте, как вы планировали использовать индекс и потенциальные затраты/выгоды, связанные с параметрами. Не зная, какие запросы вы будете писать против набора данных, невозможно посоветовать.

+0

Я думаю, я сделаю хэш из данных MYPARAMS (например, sha1) и сохранил его во втором поле. Для этого поля я сделаю индекс, и это должно сработать. – peter

+0

Да, это должно сработать. Но комментарии @ symcbean все еще стоят. –

Смежные вопросы