2014-03-05 80 views
-1

我存儲在一個MySQL數據庫中從Web資源中抓取的消息。該表非常簡單隻需一個INT ID,JSON消息和一個日期時間。我有一個關於id和日期時間索引的主索引。現在我意識到由於某種原因,mysql操作非常緩慢。該數據庫包含超過200M行。Large Mysql Table Indeces

我用的索引有問題嗎?

另外我想分割數據每天以增加性能是否正確?因爲我只使用JSON文檔,是否有使用像CoutchDB這樣的NoSQL數據庫的好處?

此外,表是非常大的(200GB)有沒有辦法使用壓縮來創建更緊湊的索引?

插入:每天超過10M 選擇:取決於系統。可能選擇使用日期時間。選擇將返回大約60M行。 更新: - DELETES: -

+0

你可以看看到 [ http://forums.mysql.com/read.php?24,499167,499167][1] 和 [http://stackoverflow.com/questions/15425230/is-it-a -goo d-創意到索引日期時間字段合的MySQL] [2] [1]:http://stackoverflow.com/questions/15425230/is-it-a-good-idea -to-index-datetime-field-in-mysql [2]:http://stackoverflow.com/questions/15425230/is-it-a-good-idea-to-index-datetime-field-in- mysql – user468891

+0

你對數據運行什麼查詢?創建/更新/讀取/刪除操作的頻率是多少?這是什麼數據庫引擎?你的DBMS如何配置?有多慢? – symcbean

回答

0

你已經有2點可行的選擇:

  • partion表按天(或行NB)
  • 使用的NoSQL數據庫

但這很大程度上取決於你對json數據做了什麼,如果你只需要提取json中某些特定屬性的條目,那麼我建議使用nosql,否則如果你只檢索基於日期或id的數據,那麼使用mysql sha錄製。

3

也許它不是這張桌子。 如果你想知道巫婆工藝使得MySQL的慢,使用下面的命令:

show processlist; 

,並期待在時間欄,更大的人讓你的mysql慢