我需要搜索视频的标题。搜索只会在一张表的一列中搜索,因此这是一个非常基本的搜索。以下是我目前用做搜索:建议进行基本搜索的方法
video_set = video_set.filter(title__icontains=search)
,并使用print connection.queries
,它会变成这样 -
SELECT COUNT(*) FROM `userprofile_videoinfo` WHERE `userprofile_videoinfo`.`title` LIKE %search%
我很新的搜索和SQL,它似乎使用“%像'%'是永远不鼓励的事情。我正在搜索大约10,000条记录,并想知道这样的搜索对于这么小的记录大小是否足够,或者如果我需要查找其他搜索选项。如果10,000条记录太小而无法发挥作用,那么我需要以何种规模/何时考虑其他选项?我可以选择哪些选项来获得更高性能的基本文本搜索?谢谢。
因此,对于10,000个电影名称,近似性能/性能增加使用%like%与索引mysql搜索? – David542
我不认为任何人都可以为所有用例提供特定的%。这取决于你的硬件,配置,数据是否被缓存(或可以被缓存)在内存中,等等。不要太早优化。如果你有一个相当明确的数据集,你可以加载和测试你的查询,这将是知道你的特定用例的最好方法。 – theoretical