如何解决我应该如何查询MySQL,以及如何从MySQL缓存结果?
(检索ID,然后查询数据库):为什么不从Solr查询返回某些字段,以使您不必总是也必须访问数据库?
(性能和排序):嗯,排序是要对数据执行的额外任务,因此势必会增加数据库的工作量:如果您的ORDER
BY
列上有索引,则当然可以将其最小化)。
(捕获MySQL查询):您可以打开MysqL缓存(如果该请求与上一个请求匹配,并且假设在此期间数据未更改,则将返回结果的缓存副本),或者使用缓存层数据库外部,例如EhCache:
解决方法
在所有人的帮助下,我终于设法使Solr正常工作,谢谢!我不得不说,我现在了解您为什么推荐它,它确实功能强大。
现在,到这个问题…
我已将所有“可搜索”信息索引到中Solr
,而我的计划是查询Solr,然后获取ID:s
(所有记录(即每个记录都有一个ID字段值)的查询结果)的,然后将其用于query
MySQL
并获取其余信息。因此,首先查询Solr,然后下一个solr向所有与查询匹配的广告发送回id:s,然后我使用ID:s向MySQL查询其余信息。
我的问是,当用MySql做零件时,我应该将接收到的所有ID:s保存到中array
,然后query
mysql
查找具有这些ID:s的所有记录吗?我应该做这样的事情吗?(可能包含一些代码错误):
for ($i=0; $i<$id_from_solr.length; $i++){
mysql_query("SELECT * FROM table_name WHERE ad_id=$id_from_solr[$i]");
}
上面的方法似乎 不是 一个好的解决方案,因为它每次循环时都会执行“新查询”!
你会怎么做?
后续问题: 与使用sort函数的WITHOUT相比,向MySQL查询中添加sort函数的速度会变慢吗?例如:
ORDER BY insert_date ASC
最后一个问题: 是否仍然要缓存MySQL结果,因此在排序时,我不必进行新的查询?
非常感谢!
如果您需要更多输入,请告诉我,我将更新此问题!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。