2014-04-09 83 views
2

我有一個大約50列和30,00,000條目的表sub_mastersheet。我試圖在其中運行一個查詢,時間太長,服務器超時。該桌子上的所有其他查詢都可以正常工作。MYSQL搜索查詢花費太久的PHP。服務器超時

這裏是我的查詢:

SELECT * FROM sub_mastersheet WHERE contributor_name1 = '$author' OR contributor_name2 = 
'$author' OR contributor_name3 = '$author'; 

我也試過:

SELECT * FROM sub_mastersheet WHERE CONTAINS(contributor_name1, '$author'); 

以上兩種查詢均未工作,服務器總是超時。即使在PHP我的管理員這些查詢需要約一個小時執行。誰能幫忙?

+0

每個contributor_name字段上的索引? –

+0

你有沒有索引?你真的需要檢索該表中的所有列嗎? – Prix

+0

這就是問題所在。我沒有任何索引,所以我不能使用全文索引。而我只需要一列。 ISBN13 – sss999

回答

0

在列上添加索引(contributor_name2,contributor_name2)

它會提高查詢的性能。

+0

ya不等。我知道。我一直在尋找除了全文索引之外還有別的方法來加快我的搜索速度。順便問一下, – sss999

+0

哪個引擎是你用的? – user3048109

+0

正在使用innodb – sss999