让我们有很多这样的课程(百万)
class WordInfo
{
string Value;
string SomeOtherFeatures;
List<Point> Points;
}
和下面的代码
private Dictionary<string, WordInfo> _dict;
public void ProcessData(IEnumerable<Tuple<string,int,int> words)
{
foreach(var word in words)
{
if(_dict.ContainsKey(word.Item1))
{
_dict[word.Item1].Points.Add(new Point(word.Item2,word.Item3));
}
else
{
_dict.Add(word.Item1, new WordInfo(....))
}
}
}
Main()
{
while(true)
{
IEnumerable<Tuple<string,int,int> data = GetDataSomewhere();
ProcessData(data);
}
}
如您所见,此代码必须 24\7 工作。主要问题是我不知道如何在数据库中表示 _dict(我存储信息的地方)。我需要每秒处理 1000-5000 个单词。关系数据库不适合我的任务,对吧?NoSQL 呢?我需要快速的 UPDATE 和 INSERT 操作。我还需要快速检查数据库中是否存在单词(SELECT)。因为我有数百万条记录,所以这也不是微不足道的。你有什么建议?可以根据文件编写我的自定义解决方案吗?