Все дело в использовании эффективных индексов.
Если у вас есть специальный запрос, создайте индекс для этого запроса.
Ex. сделать индекс age_lovebutterflies_hateschoclate
Если у вас есть сайт с большим трафиком, такой как Facebook, вам потребуется больше энергии, чем только оптимизация sql. Например, в memcaching реализована поисковая система, такая как vespa или lucene / solr, реализованная в виде кластеров. Распределители нагрузки, несколько серверов с оперативной памятью 64 ГБ, raid-диски и множество других серверных технологий ...
Проблема с базами данных, такими как mysql, postgresql, sqlite и oracle, заключается в том, что индексы подходят для статического поиска, но они не являются гибкими. Например, если вы хотите объединить поиск по столбцам, которые не проиндексированы, индексы не будут использоваться. Ex. если вы включите дополнительный параметр, например, пол или, может быть, другое подобное местоположение ... вам нужно будет создать больше индексов ... lucene / solr, и реальная поисковая система будет намного эффективнее, так как вы можете создать столько комбинаций, сколько вы как ... Все, о чем вы должны думать - это то, что столбец индексируется, а не какие другие столбцы индексируются вместе с ...
Итак, Facebook ... Это долгий путь, чувак;)