首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mysql或Python中很好地实现有限的值集

问在Mysql或Python中很好地实现有限的值集
EN

Stack Overflow用户
提问于 2018-10-23 15:08:13
回答 1查看 51关注 0票数 0

在Mysql或Python中,什么是好的实现(插入速度/内存/读取速度),用于增长有限的值集。也许并不是很有限,但是,说在所有值中插入新值是对数吗?

在Mysql中: SET数据类型可以保存在创建表期间指定的预定义字符串列表中的任意数量的字符串。

上下文:

我正在分析编程语言的趋势和其他关联,这些都是基于Github存储库中发生的事件的历史。这套语言自然是有限的。我的剧本,当发现新的,增长比线性慢,我的直觉是它是对数。无论如何,如果有100种语言和1000000种文本需要分析,那么叠加值的速度就像:

​

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-25 17:45:38

在MySQL中:

代码语言:javascript
复制
CREATE TABLE Languages (
    lang VARCHAR(222) NOT NULL,
    counter INT UNSIGNED NOT NULL.
    PRIMARY KEY(lang)
) ENGINE=InnoDB;

在分析文本以决定其语言($lang)之后:

代码语言:javascript
复制
INSERT INTO Languages (lang, counter)
    VALUES ($lang, 1)
    ON DUPLICATE KEY UPDATE
        counter = counter + 1;

这将是足够快(虽然不是最快)。它还增加了计数每一种“语言”的次数的功能。

MySQL SET可能不合适,因为

  • 当您遇到一个新值时,您需要ALTER TABLE,这是一个“重”操作,
  • SET仅限于64个值。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52952364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档