我有一个专门用来记录用户操作的数据库。该数据库有几个针对特定类型的操作的小表。这些数据很少被搜索,但是表的行数开始攀升到数百万。我没有注意到很大的速度减慢,但我想知道索引用于搜索的表是否会阻碍或帮助插入的性能。插入是经常执行的,但是搜索并不是那么频繁,并且表只会继续增长。
我应该在这些表上创建索引吗?为什么或者为什么不?
发布于 2009-01-08 17:05:20
这一切都取决于你的实证研究。将数据库的副本复制到不同的环境中,并在运行带有和不带有索引的搜索和插入时运行分析器。测量性能,看看有什么帮助。:)
发布于 2009-01-08 17:04:51
我认为您应该考虑在插入行的表上不使用索引,然后复制专门用于查询的表(并可能应用索引),而不是索引。
发布于 2009-01-08 17:34:12
作为Ray says,这完全取决于具体情况,唯一的办法就是在负载下尝试。
从理论上讲:是的,向表中添加索引会降低插入速度,因为DBMS必须在每次插入时维护所有索引。但是你会注意到吗?这对观察到的性能有影响吗?也许不是。索引通常保存在log树结构中,可以在O( B+ n)时间内插入,这是非常好的,更不用说所有的磁盘缓存等。所以唯一确定的方法是尝试两种方法,看看有什么不同。
https://stackoverflow.com/questions/425047
复制相似问题