我最近在我的数据库上遇到一些问题,这是因为我的一个数据库表已经从50,000行扩展到1,000,000行到2,000,000。
表books
有2,000,000本书籍记录,并有各种信息,从书籍的排名到书的大小。
我尝试过运行一个简单的查询...
SELECT isbn FROM books WHERE rank < 100000
等待10分钟之后,我不得不终止查询,因为它一直停滞不前,我查询其他表时没有这个问题,所以我认为问题与表的大小有关。
我已经开始阅读索引,所以我想知道这是否是纠正我的情况的最佳方式,如果不是,那将是什么?
答案 0 :(得分:1)
为rank
列编制索引并观察它
答案 1 :(得分:1)
在排名列上添加索引将是我尝试的第一件事。
但是我会说有一个200万行的表真的不算那么大,我觉得奇怪的是数据库在不到10分钟的时间里就不能进行200万行的表扫描,因为你事实上甚至没有加入查询中的任何其他表。
您预计会返回多少行?您是否肯定延迟是由于数据库服务器,而不是链中的其他地方?就像在Web客户端上渲染200,000行html表一样?