Я знаю, что varchar_pattern_ops
существует в Postgresql для быстрого поиска по индексу в запросе LIKE
, но есть ли подобная функциональность для MySQL?
В настоящее время у меня есть установка Django-MySQL, где у меня есть этот запрос, который выполняется в неиндексированном поле и с операцией BINARY LIKE
, и для его завершения требуется более минуты.
Мой запрос - это частичный поиск с начала текста - text%
.
Это структура таблицы. На самом деле таблица содержит более 20 полей, но я включил только первичный ключ и поле, которое я ищу в
+---------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------------+---------------+------+-----+--
| id | varchar(255) | NO | PRI | NULL | |
| mid | varchar(255) | NO | MUL | NULL | |
А это запрос -
select count(*) from table where mid binary like 'text%';
Это индексы -
PRIMARY KEY index has cardinality 102820460
mid index has cardinality 756032