Многие таблицы будут хорошо работать, используя CHARACTER SET ascii COLLATE ascii_bin
, что будет немного быстрее. Вот пример:
CREATE TABLE `session` (
`id` CHAR(64) NOT NULL,
`created_at` INTEGER NOT NULL,
`modified_at` INTEGER NOT NULL,
PRIMARY KEY (`id`),
CONSTRAINT FOREIGN KEY (`user_id`) REFERENCES `user`(`id`)
) CHARACTER SET ascii COLLATE ascii_bin;
Но если бы я присоединился к нему:
CREATE TABLE `session_value` (
`session_id` CHAR(64) NOT NULL,
`key` VARCHAR(64) NOT NULL,
`value` TEXT,
PRIMARY KEY (`session_id`, `key`),
CONSTRAINT FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE
) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
что будет? Логика подсказывает, что все должно быть гладко, потому что ASCII является подмножеством UTF-8. Человеческая натура подсказывает мне, что я могу ожидать что угодно от дампа ядра до сообщения Follow the white rabbit.
, появляющегося на моем экране. ¯ \ _ (ツ) _ / ¯