我正在设计一个表格,用于结构的交叉引用:
id (BigInt) | cuid (Varchar(255)) | term (Varchar(255))
在网页上,一个人会输入一个cuid或一个术语,程序将查找相应的id以在程序内部使用。数据库中共有2,669,793个条目(所以id将从0到2669792)。
我希望这可能会相当缓慢。我应该使用哪些技术来确保尽可能快的查找?查询将类似于SELECT id WHERE cuid = ?
或SELECT id WHERE term = ?
。
因为我没有在WHERE子句中查找id本身,所以我看不出我将如何从索引中受益(尽管id本身会被索引)。我听说过将单个表分成多个表并进行某种合并操作等事情。有什么想法吗?感谢。
答案 0 :(得分:2)
您可以在任何字段上放置索引,而不仅仅是id。
如果您的数据相对静态,这可能会有所帮助。如果您要通过多个字段进行查询,那么多个字段的索引也可能会带来好处。
如果您的数据定期更改,则其他索引会产生处理成本,因此其余额取决于您的数据使用情况
答案 1 :(得分:1)
假设id是主键,您需要在cuid
和term
字段上提供索引。
您还需要确保已分配足够的内存以将这些索引保留在内存中以获得最佳性能。