是否有意义 - 是否建议 - 过度工作我的整个 mysql 模型将 id 从 varchar UTF8 更改为 asci



我正在用RAILS开发,当我开始时正在使用SQLITE(不是sqlite问题)。

现在几个月后,在我的 - 现在的 MySQL 数据库中遇到 COLLATE 问题后,我取下了我的设计师帽并戴上了我的数据库管理员帽......

我意识到 - 出于某种原因我不确定,我不记得了 - 所有表格都是charset 'utf8' collate 'utf8_unicode_ci'的,原则上可以,因为更多的或更少的所有表格都有"多语言文本">

但我也从 rails 默认的自动递增整数ID 转移到 UUID 作为主键。这是 - 不知何故多亏了 RAILS - varchar(36)

(在 UUID 的 BIN 格式首次成功后,由于工具问题,我决定退回到文字 UUID)

但是这个 ids(PK, FK)也是 UTF8 并整理 'utf8_unicode_ci' 和 - 如前所述 varchar(36)

所以现在我考虑将整个数据库模式重新设计为所有 id(PF anf FK)以char(36) charset 'ascii' collate 'ascii'

但恐怕,Rails 对此做了什么,以及它对进一步迁移意味着什么。

所以 - 再一次 - 我应该改变"我的获胜团队"(它工作正常)以获得更好的表现,为了美观吗?

关键是,我没有数百万条记录,我不确定MySql拥有varchar(36) utf8而不是ascii char(36)意味着什么 - 当然以后会更快,占用更少的空间,但值得吗?

我确信使用 UUID 与整数是有充分理由的,但如果您不恢复到整数,您不必担心,不值得,您的应用程序仍然可以在数百万条记录下正常运行。

"过早优化是万恶之源">

相关内容

最新更新