Как в MySql найти число одинаковых связей в таблице M:M?
Есть таблица в которой хранятся связи по типу M:M, всего около 500М записей. Связи между предложениями и словами
pk | sentense_id | word_id
При обработке нового предложения нужно понять есть ли уже в бд похожие предложения (критерий - больше половины слов одинаковые в обоих предложениях).
вариант с join-ом и группировкой с having не интересен - ищу вариант оптимизации структуры бд для быстрого поиска.
Встречался ли кто то уже с подобным?
Скиньте ваш неоптимальный запрос, даже если он с групировкой и having и план к нему, тогда можно прикинуть ка ктоже самое сделать оптимально (писать с нуля малость лениво)
Но имхо вам сразу бы смотреть в сторону от mysql
например - для поиска записи в списке по ключу используется B-дерево. а что в данном случае можно применить? когда поиск выражается как "найти элементы, в которых есть определенное количество ключей"
grihan: ну для начала sphinx, elasticsearch смотрели? У последнего даже в бете уже было очень много инструментов для работы и сопоставления текста.
Дело ведь не только в хранении, вам явно нужен FTS