2010-04-22 115 views
0

我正在構建一個使用django,Sphinx和MySQL的系統,它很快變得非常大。該數據庫目前有大約2000行,而且我寫了一個程序,它將在幾天內用另外的40,000行填充它。由於數據庫現在是活的,因爲我從來沒有過一個數據庫,在它這麼多信息,我擔心一些事情:因爲它涉及到數據庫/表大小的MySQL效率

  1. 是將所有這些行會嚴重降低效率我的Django應用程序?我是否需要回顧一下並優化我所有的數據庫調用,以便他們更巧妙地執行操作?或者這會使數據庫變得緩慢,以至於我根本無法做任何事情?

  2. 如果你嘲笑我的40k行,那麼,我的下一個問題是,我應該關注什麼?我很可能會很快再增加幾十萬,所以我擔心,我煩惱。

  3. 獅身人面像如何感受這一切?當它意識到必須對所有這些數據進行索引時,會不會覺得奇怪?或者它會好嗎?這是正常的嗎?如果是這樣,我應該擔心什麼時候Sphinx的數據太多?

感謝您的任何想法。

回答

1

對於普通查詢2000行不算什麼 - 即使沒有索引,它也會非常快,因爲整個表可以緩存在內存中。在大多數情況下,100000行也應該可以正常工作,但如果您沒有適當的索引或者您的查詢沒有使用可用的索引,那麼您現在就會注意到 - 如果查詢不使用可能需要幾秒鐘的查詢索引正確。但是解決這個問題不需要很長時間 - 在緩慢的查詢上運行EXPLAIN並查看緩慢的原因,並找出需要的索引。

當你得到數百萬行或數千萬行時,你將不得不更加仔細地考慮你的數據庫設計和索引策略。如果你做的事情正確,那麼在表格中可能有數億行。

+0

所以,這與django有關,db是爲我創建的。 django是否正確地進行了上述索引創建? – mlissner 2010-04-22 16:44:11

+0

不,你必須自己創建索引。 – 2010-04-22 22:54:53

+0

很酷。我做到了,查找時間大大提高。 – mlissner 2010-04-28 06:53:05