使用 BINARY 存储 *_id

一篇很早以前的文章,好像很有价值:

How FriendFeed uses MySQL to store schema-less data

细心观察,发现使用了 BINARY 数据类型存储各种 *_id ,相信有很多好处:

  • 存储占用空间减小了大概一半,比如:

    >>> len("71f0c4d2291844cca2df6f486e96e37c")

    >>> 32

    >>> len(binascii.a2b_hex("71f0c4d2291844cca2df6f486e96e37c"))

    >>> 16

  • 由于存储占用空间的减少和使用二进制格式,可能带来相关性能的提高,比如查询

  • ...


updated on 2013,07,23 00:28

嗯,刚才看到 CPyUG 的 D.Y Feng 兄弟提到这个:

改善MySQL上16进制标识符性能的5种方法

其中的“三、使用二进制数据存储”就是上面 FriendFeed 使用的!呵呵