0

我有近150k土耳其文章。我將使用文章進行自然語言處理研究。 我想在處理文章後爲每篇文章存儲它們的文字和頻率。很多文章的單詞列表 - 文檔 - 術語矩陣

我現在將它們存儲在RDBS中。

我有3個表:

文章 - >的article_id,文字
詞 - > word_id,類型,字
字 - 文章 - >編號,word_id,ARTICLE_ID,頻率(指數word_id,指數article_id的)

我的文章

  • 一個字的每articl頻率查詢

    • 所有關鍵詞在所有的文章和其中E
    • 出現的詞語文章

    我有幾百萬文字,文章表行。我一直在這個項目中與RDBS合作。從mysql開始,現在使用oracle。但我不想使用oracle,並希望比mysql更好的性能。

    另外我必須在4gb RAM的機器上處理這項工作。
    簡單地說,如何存儲文檔項矩陣並對其進行查詢?性能是必要的。可以「鍵值數據庫」在性能上擊敗MySQL嗎?或者什麼可以擊敗MySQL?

    如果你的答案編程語言依賴,我在Python中編寫代碼。但是C/C++,Java沒問題。

  • 回答

    0

    對於150k條款,您必須在words_articles表中有幾百萬行。只要您正確配置MySQL,這是可管理的。

    一些提示:

    • 確保您的表是MyISAM數據,而不是InnoDB的。
    • 刪除words_articles表中的id字段,並將(word_id,article_id)作爲主鍵。此外,創建word_id單獨的索引,並在words_articles表ARTICLE_ID:

      ALTER TABLE words_articles 
      DROP PRIMARY KEY, 
      ADD PRIMARY KEY (word_id, article_id), 
      ADD INDEX (word_id), 
      ADD INDEX (article_id); 
      

      (做在一個單一的ALTER語句都給人更好的性能)。

    • 創建字表詞索引:

      ALTER TABLE words ADD INDEX (word); 
      
    • 調整的my.cnf。具體來說,增加緩衝區大小(特別是key_buffer_size)。 my-huge.cnf可能是一個很好的起點。

    相關問題