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可能是一个很好的起点。

    相关问题