0

我正在设计一个表格,该表格将用于与结构交叉引用:

id (BigInt) | cuid (Varchar(255)) | term (Varchar(255))

在网页上,人们将输入 cuid 或术语,程序将查找相​​应的 id 以在程序内部使用。数据库中共有 2,669,793 个条目(因此 id 将跨越 0 - 2669792)。

我预计这可能会相当缓慢。我应该使用什么技术来确保尽可能快的查找?查询将类似于SELECT id WHERE cuid = ?or SELECT id WHERE term = ?

由于我没有在 WHERE 子句中查找 id 本身,因此我看不出我将如何从索引中受益(尽管 id 本来就会被索引)。我听说过诸如将单个表分解为多个表并进行某种合并操作之类的事情。有什么想法吗?谢谢。

4

2 回答 2

2

您可以将索引放在任何字段上,而不仅仅是 id。

如果您的数据相对静态,这可能是有益的。如果您要按多个字段进行查询,那么多个字段上的索引也可能有好处。

如果您的数据定期更改,那么额外的索引将产生处理成本,因此其平衡取决于您的数据使用情况

于 2012-09-05T17:50:19.570 回答
1

假设 id 是主键,您需要在cuid和字段上提供索引。term

您还需要确保分配了足够的内存以将这些索引保留在内存中以获得最佳性能。

于 2012-09-05T17:51:00.610 回答