0

我正在使用 django、Sphinx 和 MySQL 构建一个系统,该系统很快就会变得非常大。该数据库目前大约有 2000 行,我编写了一个程序,它将在几天内再填充 40,000 行。由于数据库现在处于活动状态,并且由于我从未拥有过包含这么多信息的数据库,因此我担心一些事情:

  1. 添加所有这些行会严重降低我的 django 应用程序的效率吗?我是否需要返回并优化我所有的数据库调用,以便他们更聪明地做事?或者这会使数据库变慢到我根本无能为力的程度?

  2. 如果您嘲笑我的 40k 行,那么,我的下一个问题是,我应该在什么时候担心?我可能很快就会再增加几十万,所以我担心,我担心。

  3. 斯芬克斯对这一切有何感想?当它意识到它必须索引所有这些数据时,它会发疯吗?或者会好起来吗?这是正常的吗?如果是,我应该在什么时候担心 Sphinx 的数据过多?

感谢您的任何想法。

4

1 回答 1

1

对于普通查询,2000 行不算什么——即使没有索引,它也会非常快,因为整个表都可以缓存在内存中。在大多数情况下,100000 行也应该可以正常工作,尽管如果您没有适当的索引或者您的查询没有使用可用的索引,那么您现在会注意到它 - 如果不使用应该需要几秒钟的查询可能需要几分钟索引正确。但是解决这个问题应该不会花很长时间——在你的慢查询上运行 EXPLAIN 看看为什么它很慢,然后找出你需要的索引。

当您达到数百万行或数千万行时,您将不得不更仔细地考虑您的数据库设计和索引策略。如果操作正确,表中可能会有数亿行。

于 2010-04-22T06:33:58.533 回答