我的场景:
- 新的 Cake (2.x) 项目,还没有 DB
- MySQL 集群,也许是 Oracle 集群产品
- 无需迁移/导入数据
- 数据可能如下所示:
Users
-> HABTM ->Groups
-> HABTM ->Other Groups
我一直在做一些关于如何在 CakePHP 中使用 UUID 的研究,我发现了以下内容:
Cake 对 UUID 有本机支持,但它假设CHAR(36)
:
http://book.cakephp.org/2.0/en/getting-started/cakephp-conventions.html
这个堆栈答案指出:
以我的卑微经验,将 UUID 作为 CHAR(36) 的成本高得离谱,并且在 1+ 百万、10+ 百万、100+ 百万行时变得愚蠢
此博客文章声称BINARY(36)
优于CHAR(36)
:
尽管 CakePHP 不支持密钥类型为 BINARY(16) 的 16 字节十六进制编码的 UUID,但它确实支持 BINARY(36),这仍然比使用 CHAR(36) 更好,后者可以通过排序来减慢速度。
...但是蛋糕文档没有这么说...
我的问题是,考虑到 CakePHP/MySQL(或 CakePHP/Oracle),CHAR(36) 是这里唯一合理的选择,还是有更好、更有效的方式将 UUID 与 CakePHP(或任何其他 PHP 框架)一起使用?