Какой порядок сортировки предпочтителен, если сортировка не требуется? - PullRequest
0 голосов
/ 11 октября 2011

У меня есть таблица, например:

create table T1(Id int primary key auto_increment, Value text)

Value используется для хранения "текстовых" данных, но строки никогда не сортируются согласно столбцу Value.

Какое сопоставление должно быть предпочтительным для Value?

Будет ли utf8mb4_bin лучшим выбором или utf8mb4_general_ci?

1 Ответ

2 голосов
/ 12 октября 2011

Это выглядит хорошо. Я бы определенно не использовал бы сортировку без учета регистра, если бы она не была необходима (как в вашем случае), поскольку она может привести к более медленным запросам (хотя я сомневаюсь, что она будет использоваться в любом случае для нетекстовых полей).

Следует помнить, однако, что сортировка предназначена не только для сортировки, но и для выбора (например, предложение where). Если вы собираетесь получать строки только на основе столбцов, отличных от Value, это не должно иметь значения.

В любом случае, я на самом деле не большой поклонник сортировки без учета регистра, выполняемой самой базой данных, так как я бы предпочел, чтобы база данных работала настолько быстро, насколько это возможно, и использовал бы мой own методы для обработки проблем с регистром (например, дополнительный индексированный столбец, содержащий фамилии в нижнем регистре и обновленный с помощью триггеров вставки / обновления для обеспечения согласованности с остальной частью строки).

По сути, я луддит :-), но никто никогда не жалуется на то, насколько большие их базы данных, только на то, насколько медленными являются .

...