Black Hat
Постоялец
- Регистрация
- 15 Май 2015
- Сообщения
- 167
- Реакции
- 112
так как индексы будут вешаться на такие строковые данные, эти индексы будут очень большими, а большие индексы могут не вмещаться в память => тормозаnoggano - Моя игра
noggano - Мама
noggano - урбан
Eminem - Not Afraid
если будет выборка без LIKE, а например,
Код:
WHERE `name` = 'noggano'
Код:
WHERE `name` = 'noggano' AND `name_crc` = CRC32('noggano')
Таким образом, будет выбран "компактый" индекс по CRC32, а чтобы не попасть на коллизии - вторая проверка `name` = 'noggano'.
Код:
`name_crc` int(11) unsigned NOT NULL
Заполнени name_crc - повесить на триггер:
Код:
DELIMITER $$
CREATE TRIGGER `name_crc_fill` BEFORE INSERT ON `my_table`
FOR EACH ROW BEGIN
SET NEW.name_crc = CRC32(NEW.name);
END $$
DELIMITER ;