Завтра выложу...может сегодня щас сделать успею...
Скажу сразу, я давно баловался с индексами и EXPLAIN запросами и пришёл к тому, что при фильтре по s_id, когда передаётся более 50-60% существующих ID, то начинается "затуп"...
Дружище, Так у меня каждый документ самодостаточен))
Ток эти документы надо фильтровать по полям (s_id, a_id, b_id, c_id) в документе (отбрось справочники - они в этой схеме не при чём...)
Если из условия задачи убрать фильтрацию по s_id (или сократить кол-во ID для фильтра в этом параметре до одного или нескольких значений), то время запроса становится терпимым...потому что на всю таблицу D примерно 100 уникальных s_id, но чаще выбираются записи по фильтру где более 40 ID...и выходит, что индекс по этому полю становится малоэффективным...т.к. большая часть таблицы сканируется...
Дмитрий,
Наоборот думал легче воспринять такие обозначения)
По сути 4 справочника A, B, C и S.
Одна таблица с данными D.
Количество записей у вас такое что не должно быть проблем с общепринятым подходом.
Да, я работал с данными и более 160 000 000 записей в MySQL...но там не было таких "неравномерно размазанных" данных по связям со справочниками...Особенно по s_id, т.к. тут разбег большой по кол-ву записей в D...
Скажу так...диплом и образование важно...но...я допустим без диплома в этой сфере работаю...и никто ни разу его не спросил))
Стоит ли разрываться между изучением программирования и подготовкой к ЕГЭ?
Я занимался этим в свободное время от других "обязательных" дел...это должно быть минимум как хобби...
А математика, физика и т.п. тебе пригодятся)) Когда-нибудь...)) Даже в IT ;)
Поэтому - сдавай ЕГЭ :)
Я пока так и сделал...потому что при моём варианте сеть периодически тупила в самих VDS...
Но хотелось бы иметь как я описал в задаче сеть...чтобы фаерволами на каждой VDS не "разруливать" кому "извне" доступ есть, а кому - нет...
Дмитрий, Щас понял...спасибо.
Но на практике не видел...скорее всего ещё придётся указывать в самом запросе когда и какой индекс использовать (есть такое в MySQL), ибо сам "движок мускула" не всегда может адекватно подобрать индексы...
Дмитрий,
Я тут мимо проходил...стало интересно про LIKE и индексы...
Загуглил "функциональные индексы MySQL", вник, изучил - не понял как к задаче применить...
Далее гуглю за "REVERSE"...в итоге он существует с версии 8...но опять же - как к задаче применить относительно LIKE - тут хз... O_o