2011-12-12 129 views
2

我有一个表只有两个字段,id1和i2。两个字段表(都是int)是否需要一个索引?

两者都是来自其他表的ids,并且是int(10)。

我应该在这张桌子上有一个索引吗?

编辑:我在想这个表是由两个简单的数据类型组成...... MySQL是否会比索引数据低效地查询非索引数据?

有问题的表将有更多的读取而不是写入,并且不会经常查询,因此索引可以很好。

+2

索引是一门艺术,因为它是一门科学。一般来说,如果一个表的写入次数少于读取次数,这通常是件好事。如果一个表的行数少于20k,索引会让你有一点点但不是很多。如果此表将用于系统中的LOTS连接并始终引用两个列;综合指数可以为您提供最好的服务;真的取决于什么样的表现是可以接受的。如果您能够在0.25秒的响应时间内生活,则不可能需要这种尺寸的索引。硬币有两面,较长的写与较短的读取。 – xQbert

回答

0

如果这是一个大表(即由多行组成),那么将用作查询一部分的列上的索引可能是一个好主意。另外,如果表格将不经常更新并且经常用作关系表,则一个或多个索引可能会显着加速涉及表格的连接。

表中的两列引用主键的事实并不排除索引的需要。考虑一个常见的连接方案涉及叙述者表,例如:

表1 JOIN RelatorTable JOIN表2

它可能是一个好主意,在该表的外键创建RelatorTable索引它指的是主键的表1。这可能会加速连接,尤其是如果RelatorTable很大。

+0

谢谢。在与一些同事交谈之后,我现在知道搜索索引总是更快。但是,添加索引时,必须考虑读/写频率。 –

-2

SQL数据库中的索引非常类似于书中的索引,而不是阅读本书的内容以找到您要查找的内容,然后使用索引,然后跳转到确切页面。但在你的情况下,你的表不包含数据,只是引用存储在其他表中的数据,所以我个人并不认为这里需要索引。在这种情况下,id字段字段可以简单地用作索引。

相关问题