我遇到了一些问题,也就是说,我有一个包含一些单词的数据库,大概有 900,000 个,我想做的是检查其中是否有一个单词,如果是,则返回该行中的另一个字段。
当我这样做时,我会超时。我知道我可以更改超时,但我真正想要的是尽可能让它更快。我的访客不想等待 30 多秒才能得到他想要的东西。
我无法制作 900,000k 静态文件,因为我在托管中有 inode 限制。
所以我几乎被关起来了,所以我能做些什么来让它变得更好?
表结构:
身份证 | 词 | 换句话说
CREATE TABLE `database` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`word` text COLLATE utf8_unicode_ci NOT NULL,
`md5string` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=966277 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
询问:
mysql_query("SELECT otherword FROM table WHERE word='$word'");
另一个查询:
mysql_query("SELECT word FROM table WHERE otherword='$otherword'");
主查询(使用 GET 的文件)
$word = $_GET["word"];
echo $word;
$check = mysql_query("SELECT md5string FROM `database` WHERE word='$word'") or die(mysql_error());
while (mysql_num_rows($check)>0)
{
$out = mysql_fetch_array($check);
$output = $out[0];
}