从性能角度来看,将MySQL临时表用于高度使用的网站功能的效率如何?
我正在尝试为网站编写搜索功能,并且我已经决定使用MySQL临时表来处理数据输入的方法,通过以下查询:
CREATE TEMPORARY TABLE `patternmatch`
(`pattern` VARCHAR(".strlen($queryLengthHere)."))
INSERT INTO `patternmatch` VALUES ".$someValues
位置是具有布局的一组数据 - 或者基本上是用户搜索的内容。然后,我根据表中的数据搜索主表,如下所示:$someValues
('some', 'search', 'query')
images
patternmatch
SELECT images.* FROM images JOIN patternmatch ON (images.name LIKE patternmatch.pattern)
然后,我根据每个结果与输入的匹配程度应用启发式或评分系统,并通过该启发式等方式显示结果。
我想知道的是创建临时表需要多少开销?我知道它们只存在于会话中,并且在会话结束后立即被删除,但是如果我每秒有数十万次搜索,我可能会遇到什么样的性能问题?有没有更好的方法来实现搜索功能?