Слова (обычные русские или английские), для каждого из которых есть одно или несколько значений.
Слов около 50-100 тысяч.
Значений всего может быть около миллиона.
Значения не уникальны во всей этой схеме, но внутри каждого слова уникальны.
Т.е. логично построить такую таблицу:
- Код: Выделить всё
+---------+----------+
|words |values |
+---------+----------+
|word1 |value1 |
|word1 |value2 |
|word2 |value3 |
|word2 |value1 |
+---------+----------+
Но задача состоит в том, чтобы по связке нужных слов (от одного до пяти) выяснить их значения, причём только те, которые есть у всех слов связки.
Всё это под никсами и используя perl + mysql. СУБД впринципе для этого можно и поменять на какую-либо другую.
Дело всё в том, что эта таблица получится оччень большой и запрос соответственно займёт очень много времени.
Есть конечно вариант (может он и бредовый):
Сделать для каждого слова таблицу, в которой будут лежать только значения для нужного слова, потом запрос делать из нужных таблиц (какие слова у нас в связке) и группировать по значениям (чтоб вылезли только совпадающие).
А крутость такой фишки в том, что слова искать не надо, надо просто открыть соответствующие таблички.
Но тут возникла проблема, mySQL не может открыть больше 65536 файлов (а на одну таблицу там 3 файла).
Очень сложная и непонятная для меня проблема, подскажите что-нибудь.