我对一个表的索引增益与每个月的规模稳步增长以及带索引的查询增益之间的界限存在疑问。
情况是,我有两个表,表1 和表2 。每个表都会缓慢但每个月定期增长( Table1 大约有100行, Table2 有几行)。
我的具体问题是是否有索引或删除索引。我已经做了一些测量, Table2 上的覆盖索引改善了我的SELECT查询,而另一些相当多,但是我要考虑优点和缺点,但是很难确定。
对于 Table1 ,可能没有必要拥有索引,因为那里的SELECT查询不常见。
我很感激任何建议,提示或只是对什么是好解决方案的好建议。 顺便说一下,我正在使用IBM DB2 V9.7作为我的数据库系统
此致
Mestika
答案 0 :(得分:2)
任何其他索引都会使您的插入更慢,查询速度更快。
要做出明智的决定,您必须准确地根据您希望看到的数据量来衡量。如果您有多个客户端同时访问数据库,则编写一个小型多线程应用程序可以模拟插入和查询的最大负载。
您的结果取决于数据的性质以及您运行的硬件。如果您想知道您的用例的最佳答案,那么您无法使用您的数据和硬件准确地测试。
然后你将不得不问自己:
我需要哪种查询性能?
如果查询性能足够好而没有索引,那么很简单:不要添加索引!
我需要哪种插入性能?
是否可以通过附加索引降至所需限制以下?如果没有,那就很简单:添加索引!
如果您发现绝对需要查询性能索引,并且无法获得索引所需的插入性能,则可能需要购买更好的硬件。固态光盘可以为数据库服务器带来奇迹,而且价格合理。
如果您的系统无论如何都适合所有人,请小心,让它按原样运行。