MySQL - 有没有办法保存搜索以加快未来的冗余查询?

时间:2012-08-03 04:12:01

标签: mysql

我尝试实现用户可以请求保存搜索的功能。如果请求,搜索中找到的行将被标记,以便将来,如果执行相同的搜索,程序只需要查找该标记。

这会加速未来的冗余查询吗? MySQL中是否有这样的功能?我试图避免为每个保存的搜索创建一个新表。

谢谢,

fertileneutrino

2 个答案:

答案 0 :(得分:1)

创建一个包含'tag,id'的表格,即找到的所有ID的列表,并将它们与标记相关联。

这样可以正常工作,但是,如果添加新内容,搜索将不会更新。你说要保存行而不是搜索。

如果您想保存搜索,请创建一个视图。

答案 1 :(得分:0)

SELECT SQL_CACHE一起使用时,MySQL确实有一个查询缓存,可以configured始终开启,始终关闭或仅“按需”。

请注意,如果表中的数据发生更改,则MySQL查询缓存将始终无效,因此,如果您的数据经常更新,则这些结果将不会长时间缓存。但是,如果您的数据不经常更新,那将非常有效。

如果您希望用户的“存储搜索”保持缓存状态,即使他们搜索的数据已更新,并且更关心保存数据库负载而不是结果是新鲜的,那么您需要实现一些应用程序中的缓存类型 - 在MySQL客户端 - 服务器连接的“客户端”端。