1

我最近在我的数据库上遇到了一些查询问题,这是因为我的一个数据库表已经从 50,000 行扩展到 1,000,000 行到 2,000,000 行。

该表books有2,000,000条书籍记录,并包含从书籍排名到书籍大小的各种信息。

我尝试运行一个简单的查询...

SELECT isbn FROM books WHERE rank < 100000

等待 10 分钟后,我不得不终止查询,因为它一直停滞不前,在查询其他表时我没有这个问题,所以我认为问题出在表的大小上。

我已经开始阅读索引,所以我想知道这是否是补救我的情况的最佳方法,如果不是,那会是什么?

4

2 回答 2

2

索引rank列并观看它飞

http://dev.mysql.com/doc/refman/5.0/en/create-index.html

如何向 MySQL 表添加索引?

于 2013-03-14T16:59:15.227 回答
1

在排名列上添加索引将是我尝试的第一件事。

但是我会说一个有 200 万行的表实际上并没有那么大,而且我觉得很奇怪数据库不能在 10 分钟内完成 200 万行的表扫描,因为事实上你不是甚至加入查询中的任何其他表。

您希望返回多少行?您确定延迟是由于数据库服务器,而不是链中的其他地方吗?就像在 Web 客户端上渲染一个 200,000 行的 html 表?

于 2013-03-14T17:14:26.097 回答