我在運行使用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