我在运行使用MyISAM数据库的SQL查询时遇到性能问题。针对多个表的SQL匹配查询的性能问题
要介绍这一点,我有3个表:
表:(发动机的MyISAM总记录数:1847)甲
表:(发动机的MyISAM总记录数:1110)乙
表:C(发动机的MyISAM。总记录数:57867)
现在我正在查询花费623秒得到执行,并且有时它发生,从服务器的连接(同样是本地主机被中止的情况下)。
下面是我执行查询:
SELECT MATCH(A.title, A.description) AGAINST('Computer Graphic Artist') AS 'Score',
A.code AS 'Code',
B.cluster AS 'Cluster',
B.pathway AS 'Pathway',
A.title AS 'Role',
A.description AS 'Description'
FROM B
INNER JOIN A ON B.code = A.code
INNER JOIN C ON B.code = C.code
WHERE MATCH(A.title, A.description) AGAINST('Computer Graphic Artist')
OR MATCH(B.cluster, B.pathway, B.descripton) AGAINST('Computer Graphic Artist')
OR MATCH(C.title) AGAINST('Computer Graphic Artist')
ORDER BY Score DESC, B.cluster ASC
您也可以参考Pastie(如果你觉得无法看到这个SQL)。我已经在适用的地方添加了FULLTEXT属性。
注:表A,B和C也有少量重复记录。
请让我知道,我如何优化这个SQLfor快速输出。
可以附加一个解释? – 2012-07-20 12:56:37
@Neville:你到底想要我在这里附上什么? – 2012-07-22 11:27:01