Создать индекс для столбца MySQL на основе длины его содержимого?
Вопрос
Как мне создать индекс для столбца в MySQL версии 5.0 (движок myisam db engine) на основе длины его значения - это ТЕКСТОВЫЙ тип данных длиной до 7000 символов, должен ли я добавить еще один столбец с длиной первого столбца?
Решение
Да, поскольку MySQL не поддерживает индексы на основе функций (например ADD INDEX myIndex(LENGTH(text)))
, вам понадобится новый столбец int и определите триггер чтобы автоматически обновлять его после вставок и обновлений.
Другие советы
Звучит как хороший подход для меня (извините, я не знаю mysql, но в oracle вы могли бы установить триггер, чтобы при обновлении вашего основного столбца столбец "длина" обновлялся автоматически)
Не связан с StackOverflow