有没有一种合理的方法来索引您不能在自己控制的服务器上控制的数据库?
我们使用来自外部数据供应商的数据,该供应商使用他们编写的程序将数据直接传送到MS SQL server 2008数据库中,我们在服务器上运行这些程序。数据库的规范指出,我们对数据库所做的任何更改都可能在它们的更新期间被删除,并且在查询时,它们确认它们可能会删除索引。所以我们控制服务器,但我们的供应商控制数据库。表上的唯一索引是聚集的主键,因此查询非常慢。
我做了一个网站,允许用户添加帖子和可以作出评论。在这种情况下,我将使用数据库表来为它们收集帖子和评论。我有两张桌子,一张用来发表意见,另一张用来发表意见。就像下面..。
--------------------------------------
Table for posts
--------------------------------------
post_id | user_id | contents | media | time
--------------------------------------
Table for comments
----------
我有一个包含x、y、z、zoom和type列的地理地图数据库。最初,当我使用调用时,读取速度非常慢
SELECT image WHERE x = ... AND y=... AND zoom=... AND type =...
多亏了堆栈溢出的帮助,我发现索引(x,y,z,zoom)极大地提高了读取速度。
然而,我有一个问题,这个CREATE INDEX命令只需要在数据库第一次初始化时发出一次?即使数据库逐渐成长起来,它仍然会享受索引带来的读取速度的提高吗?
或者,我是否需要在每次关闭应用程序之前发出CREATE INDEX命令(在应用程序期间,数据库将会增长)?