SQL Ready | Программирование

@sql_ready
Префиксные индексы в MySQL — ускоряем поиск по длинным строкам! Полные индексы на длинных строках занимают много ресурсов, тогда как префиксные индексируют только первые N символов, уменьшая объём индекса и ускоряя поиск при высокой селективности начала строки. Создадим таблицу с длинным текстовым атрибутом — типичный кейс, где полный индекс был бы слишком тяжёлым: CREATE TABLE documents ( id INT PRIMARY KEY, doc_key VARCHAR(500) NOT NULL ); Добавим префиксный индекс. Индексируются только первые 20 символов: CREATE INDEX idx_doc_key_prefix ON documents (doc_key(20)); Если фильтровать данные по фиксированному началу строки, MySQL использует префиксный индекс: SELECT id FROM documents WHERE doc_key LIKE 'INV-2024-%'; Важно: индекс применяется только если шаблон начинается без ведущего %. Например, LIKE '%2024%' уже не сможет его использовать. Пример с email — если полная индексация не нужна: CREATE INDEX idx_email_prefix ON users (email(16)); Ограничения: префикс должен быть достаточно селективным, иначе польза минимальна. Такие индексы практически не подходят для сортировки или группировки по полному полю, так как индекс содержит лишь его часть. Префиксные индексы — способ уменьшить размер индекса и ускорить поиск по строкам, когда полный индекс слишком тяжёл и не даёт дополнительной пользы. SQL Ready | #практика
Если у вас установлено приложение,
вы можете сразу перейти в канал