【问题标题】:Google App Engine - Datastore key ID int vs string perfomanceGoogle App Engine - 数据存储区密钥 ID int 与字符串性能
【发布时间】:2014-03-31 14:47:59
【问题描述】:

您好,我想知道将 Int 和 String ID 用于实体键之间的性能差异有多大。

我找不到任何关于此的文章。在我看来 在大规模比较长字符串时,比较 int64s 肯定要慢得多,或者我错了,有一些很酷的算法可以让它以相同的速度运行。

我想使用 sha256 哈希作为字符串 ID,但与 int ID 相比,我不想丢失任何东西。

例如,如果我有 1 000 000 000 个相同类型的实体,并且我使用 sha512 具有字符串 ID(128 个字符)作为实体,则读取(从数据存储区获取)1 个实体的速度比使用相同数量的 int64 ID 慢实体?如果是的话比多少?

感谢您的任何回答或建议,希望我解释正确。

【问题讨论】:

    标签: google-app-engine google-cloud-datastore


    【解决方案1】:
    1. 我认为不会有任何区别。 App Engine 存储了数万亿个实体,我相信他们的团队中有足够的计算机科学博士来优化检索单个记录这样的基本任务。

    2. 即使有差异,也可以忽略不计。我想不出一个重要的用例。

    3. 还有许多对性能影响更大的决策。

    4. 我认为您应该首先专注于获得数百万用户。一旦你到达那里,你可以筹集到很多钱,然后你可以优化你的应用程序。

    【讨论】:

    • 我不认为这是不友好的,关键是不要浪费时间优化尚未遇到的问题。
    • 抱歉,我不想让它听起来不友好。我自己浪费了很多时间来优化后来被证明是不必要的东西。
    • 公平地说,“如果存在性能差异”,那么在开发早期选择快速的将是一个非常好的主意。稍后转换可能非常困难(我必须处理实际项目中的转换问题)。
    • “程序优化的第一条规则:不要这样做。程序优化的第二条规则(仅供专家使用!):不要这样做。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 2011-02-16
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多