лучшие типы данных mysql для сокращения пространства и повышения производительности

#mysql

#mysql

Вопрос:

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

  1. тип данных для длины 10 int
  2. тип данных для 1 int длины 0-9
  3. тип данных для int 1 или 0
  4. тип данных для строки из 32 символов
  5. тип данных для строки из 255 символов

Я предполагаю, что мой общий вопрос заключается в том, какие типы данных я должен использовать для уменьшения пространства, поскольку стоимость за ГБ составляет ~ 6 долларов. Хотя я также не хочу жертвовать производительностью процессора только для сохранения байта.

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

1. Для строк это фиксированная длина или переменная? Для чисел вы должны указать диапазон значений. И обмен хранилищем для процессора типичен для сжатия, например, в формате сжатия InnoDB. Вы не можете использовать оба способа

2. Шесть *whole* долларов за гигабайт? Боже милостивый , вашим разработчикам, должно быть, плохо платят, если именно здесь вы должны сокращать расходы.

3. @Matt Ball: Оборудование дешевое, программисты дорогие , однако мы не знаем, где базируется OP…

4. @Мэтт Болл: Я знаю. Об этом тоже было сказано красноречиво

Ответ №1:

  1. int или bigint , в зависимости от того, насколько велики 10-значные числа ( unsigned если это имеет смысл)
  2. tinyint
  3. boolean (не обнуляется)
  4. varchar(32)
  5. varchar(255)

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

1. @user962449 спасибо за разъяснение. Просто имейте в виду: unsigned int максимальное значение 4294967295 (10-значное число), но это не самое большое 10-значное число ( 9999999999 ).

2. Возможно, вы захотите добавить, что DECIMAL(10,0) потребуется 5 байт: dev.mysql.com/doc/refman/5.1/en/storage-requirements.html