我正在尝试实现用户可以请求保存搜索的功能。如果请求,在搜索中找到的行将被标记,因此将来,如果执行相同的搜索,程序只需查找该标记。
这会加速未来的冗余查询吗?MySQL中是否有这样做的功能?我试图避免为每个保存的搜索创建一个新表。
谢谢,
肥中微子
我正在尝试实现用户可以请求保存搜索的功能。如果请求,在搜索中找到的行将被标记,因此将来,如果执行相同的搜索,程序只需查找该标记。
这会加速未来的冗余查询吗?MySQL中是否有这样做的功能?我试图避免为每个保存的搜索创建一个新表。
谢谢,
肥中微子
创建一个带有'tag, id' 的表,即所有找到的id 的列表,并将它们与一个标签相关联。
这可以正常工作,但是,如果添加了新内容,则不会更新搜索。您说要保存行而不是搜索。
如果要保存搜索,请创建一个视图。
MySQL 确实有一个查询缓存,当与SELECT SQL_CACHE
.
请注意,如果表中的数据发生更改,MySQL 查询缓存将始终失效,因此如果您的数据经常更新,这些结果将不会长时间保持缓存。但是,如果您的数据不经常更新,它将非常有效。
如果您希望用户的“存储搜索”即使在他们搜索的数据已更新时仍保持缓存,并且更关心节省数据库负载而不是结果是否新鲜,那么您将需要实现某种缓存在您的应用程序中 - 在 MySQL 客户端-服务器连接的“客户端”端。