【发布时间】:2014-05-22 08:51:38
【问题描述】:
我有一个包含大约 50 列和 30,00,000 个条目的表 sub_mastersheet。我正在尝试在其中运行一个查询,该查询花费的时间太长并且服务器超时。该表上的所有其他查询都运行良好。
这是我的查询:
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 上,这些查询也需要大约一个小时才能执行。有人可以帮忙吗?
【问题讨论】:
-
每个contributor_name 字段的索引?
-
你有索引吗?您真的需要检索该表中的所有列吗?
-
这就是问题所在。我没有任何索引,所以我不能使用全文索引。我只需要一栏。 ISBN13
-
结果中有多少行?什么是contributor_name 1、2、3 基数?
-
基数不是固定的,你可以说。它们通常从正常到非常高不等。结果取决于基数。结果可能从 1 到 11000 不等
标签: php mysql sql search search-engine