私のシナリオ:
- 新しい 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
このStack Answerは、次のことを指摘しています。
UUID を CHAR(36) として実行するコストはとてつもなく高く、私の謙虚な経験では、100 万以上、1000 万以上、1 億以上の行でばかげています。
このブログ投稿BINARY(36)
は、次のものよりも優れていると主張していますCHAR(36)
:
CakePHP は、キータイプが BINARY(16) の 16 バイトの 16 進数でエンコードされた UUID をサポートしていませんが、照合によって遅くなる可能性がある CHAR(36) を使用するよりも優れた BINARY(36) をサポートしています。
...しかしCake Docsはそうは言っていない...
私の質問は、CakePHP/MySQL (または CakePHP/Oracle) を考えると、CHAR(36) がここで唯一の合理的な選択であるか、または CakePHP (またはその他の PHP フレームワーク) で UUID を使用するためのより良い、より効率的な方法があるかということです。 ?