Какая сортировка предпочтительнее, когда сортировка не требуется?

#php #mysql #database #collation

#php #mysql #База данных #сортировка

Вопрос:

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

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

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

Для какой сортировки следует предпочесть Value ?

Что было бы utf8mb4_bin лучшим выбором или utf8mb4_general_ci ?

Ответ №1:

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

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

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

В принципе, я луддит 🙂 но никто никогда не жалуется на то, насколько велики их базы данных, только на то, насколько медленно.

Комментарии:

1. Когда вы говорите, что вы луддит, вы имеете в виду, что в старые времена именно так это делалось? Даже на уровне отраслевого стандарта?