2013-04-23 83 views
0

我想实现像用户,页面,照片,专辑,事件,评论等类似的Facebook的Facebook。他们都是唯一的ID,他们中的大多数可以从http://facebook.com/ {object_id}我应该使用数据库序列ids还是uuid_short()?

访问,并且喜欢或评论任何对象,您只需简单地做http://facebook.com/ {object_id}/comment或likes。

对序列的MySQL执行:对uuid_short()http://www.mysqlperformanceblog.com/2008/04/02/stored-function-to-generate-sequences/

mysql的文档:http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html#function_uuid-short

什么是使用序列的优点和缺点?

btw如果我要实现序列,我会选择BIGINT作为字段类型。

回答

0

如果您使用的是InnoDB,则每次都会有一个数值超过UUID值。

假设您将此值设为主键,它将被聚集。严格增加的数值远远优于UUID。

欲了解更多信息,请参阅这些答案Mysql How do you create a clustered index?及后续链接。而这Google books link。而DBA.SE

注:同样的道理也适用于SQL Server和Sybase太

+0

我不打算用UUID,但UUID_short(),它是数字了。 – Basit 2013-04-23 07:14:52

+0

如果它独特,那就使用它。不要添加序列开销。 – gbn 2013-04-23 07:27:44

+0

它有一些条件,如果一个条件失败,唯一性也会失败。点击上面的链接阅读所有条件。 – Basit 2013-04-23 07:30:12

相关问题