Я развиваюсь в RAILS и с тех пор, как я начал, использовал SQLITE (а не вопрос sqlite).
Теперь несколько месяцев спустя и после запуска задач COLLATE в базах данных MySQL теперь я удалил колпачок для своего разработчика и надел кеш-память базы данных...
Я понял, что - по какой-то причине я не уверен в этом, я не могу вспомнить - все таблицы - это charset 'utf8' collate 'utf8_unicode_ci'
, что в принципе нормально, так как больше руд менее всех таблиц имеют "многоязычные тексты",
Но я также перешел из идентификаторов целого числа auto auto increments по умолчанию в UUID в качестве первичного ключа. И это - как-то благодаря RAILS - varchar (36)
(после первого успеха с BIN-форматом для UUID я решил вернуться к буквальным UUID из-за проблем с инструментом)
Но эти идентификаторы (PK, FK) также являются UTF8 и сопоставляют "utf8_unicode_ci" и, как упоминалось, varchar (36)
Итак, теперь я думаю о переработке всей схемы базы данных ко всем идентификаторам (PF anf FK) для char(36) charset 'ascii' collate 'ascii'
Но я боюсь, что Rails делает с этим и что это означает для дальнейших миграций.
Итак - снова - я должен изменить "свою команду победителей" (она отлично работает) для лучшей производительности, для красоты?
Дело в том, что у меня нет миллионных записей, я не уверен, что для MySql это означает, что varchar(36) utf8
вместо ascii char(36)
- уверен позже будет быстрее и занимает меньше места, но стоит ли оно того?
Я уверен, что была хорошая причина использовать UUID vs Integer, но если вы не возвращаетесь к Integers, вам не стоит беспокоиться, не стоит того, что ваше приложение все равно может работать нормально с миллионами записей.
"Преждевременная оптимизация - это корень всех злых"