我有一个关于组织我的web应用程序(php + mysql)的问题。我有很多桌子。我必须通过不同的参数来搜索它。例如: country: 2,category1: 33,language: 3。
select distinct s.id from tbl_item s
left join tbl_item_act ep on s.id = ep.item_id
left join tbl_item_act_category cl3 on cl3.id = ep.category_id
left join tbl_item_act_category cl2 on cl2.id = cl3.parent_id
left join tbl_item_act_category cl1 on cl1.id = cl2.parent_id
left join tbl_city ci on ci.id = s.city_id
left join tbl_country co on co.id = ci.country_id
left join tbl_language la on la.id = cl2.language_id
left join tbl_item_subject sbb on sbb.item_id = s.id
left join tbl_subject sb on sb.id = sbb.subject_id and sb.subject_type = 'subject'
left join tbl_subject ev on ev.id = sbb.subject_id and ev.subject_type = 'event'
left join tbl_season se on se.id = cl1.season_id or se.id = cl2.season_id
left join tbl_education_type et on et.id = s.education_type_id
left join tbl_item_tag_binding stagb on stagb.item_id = s.id
left join tbl_item_tag stag on stag.id = stagb.tag_id
left join tbl_item_type_binding stb on stb.item_id = s.id
left join tbl_item_type st on st.id = stb.item_type_id
where s.original_id is null and cl1.id = 33 and la.id = 2 and se.id = 2我必须在一个页面上执行9-10个查询。我每次查询大约需要50毫秒。我试图生成一个表(比如view)并在这里存储连接的数据(作为缓存表),但它存储了数百万行,并且每次查询需要大约500ms的搜索时间。我尝试过nosql (mongodb)搜索(大数据树),它花费的时间很短。大约20-30毫秒,但对我来说太多了。
通过我的数据结构中的许多参数来创建快速搜索的最佳实践是什么?
对不起,我的英语不好。
发布于 2016-10-30 04:17:06
这是一个很大的挑战,但这里需要apache的Solr或Lucene
https://stackoverflow.com/questions/40157578
复制相似问题