Здравствуйте.
У меня в MySQL таблице скопился миллион строк. Одна из колонок таблицы хранит URL адреса. Есть так же скрипт, который должен перед добавлением нового URL в таблицу проверить, нет ли ее уже там, и если есть, то получить первичный ключ этой записи. Проблемы как раз с поиском по этой колонке. Сейчас запрос вида:
cursor.execute("SELECT id FROM urls WHERE url = %s LIMIT 1", [url])
Легко может выполняться 60 секунд. Первое, что пришло в голову это делать индекс, но из за наличия в таблице URL длиннее 768 символов я не могу построить индекс для varchar колонки. Уникальный индекс мне тоже не построить. Кодировка utf8mb4_unicode_ci и повлиять я не это не могу.
Подскажите, как ускорить поиск по 1-2 секунд с учетом, что база таблица будет постоянно расти?