代码之家  ›  专栏  ›  技术社区  ›  Faisal Abid

UUID主键和Memcached

  •  0
  • Faisal Abid  · 技术社区  · 14 年前

    现在数据被频繁缓存,而且只有在有新数据(然后数据被缓存为lol)时才访问数据库,使用Int主键与UUID主键是否存在真正的性能差异。

    例如,假设im正在构建NetFlix。一个新的电影被添加到数据库中,电影列表和相关的数据被放入缓存中。

    用户搜索一部电影(由搜索服务器处理),然后找到一个列表,单击它,然后从缓存中检索数据。

    在整个过程中,数据库永远不会被读取。

    你有什么想法?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Chris    14 年前

    我是一个类似于Netflix的主要站点的架构师,你基本上是正确的,几乎所有的非事务性数据都被缓存了,所以优化数据库并不总是有回报的。我们所有的电影标题都是通过一个重复的任务预先加载到memcached中的,因此对于系统的库部分,数据库永远不会被实际的客户访问。

    尽管如此,我们在设计数据库结构和查询时并没有懈怠,因为我们希望预加载程序尽可能快速高效地运行。

        2
  •  0
  •   Donald Byrd    14 年前

    GuidComb 对于主键。的确,它确实使一些指标膨胀,但由于64位RDBMS无处不在,而且内存相当便宜,我认为优点远远大于缺点。不用等到你插入才知道你的PK会是什么是我的最爱。

        3
  •  0
  •   Daniel    14 年前

    如果我想用大量的内存来支持你的话,我也会用很多的内存来支持你。

    比较:

    其中64位整数只有8个字节。也可能存储在一个寄存器中。

    假设您想将100000个id加载到ram中。

    更新:2010年10月8日。

    验证reguuex是一个比较困难的字符串,你必须使用一个字符串。

    但是,验证整数很简单。intval()php或.to\u i ruby,以及perl的int()。