MySQL. Для всего INT?

12
O
На сайте с 29.05.2008
Offline
195
#11
В производительности и ОЗУ не потеряете ничего. Разница только одна - на случай каких-либо математических функций tinyint предпочтительнее.

Это танцы с бубном. Логично, логическое значение это true - 1, false - 0, а TINYINT, это уже 256 вариантов (разумеется, можно и TINYINT(1)). Ну и ENUM работает быстрее...

doctorpc:
Однозначно третий вариант. Под каждую задачу свой тип.
При больших объемах занимаемое данными место и, главное, скорость работы может очень отличаться в зависимости от выбора типа. Мой подход противоположен подходу "памяти не жалко". Всегда считал, что в первую очередь нужно оптимизировать архитектуру/код, а уже потом добавлять железо.

А что тогда прикажете делать с ОЗУ, как не использовать? Наоборот стараюсь больше информации засунуть в ОЗУ, вместо того чтобы генерировать или считывать с файла каждый раз. Если много ОЗУ жрет, далеко не означает что медленно работает, скорее, наоборот.

Тут еще один момент: использование tcp при работе через порт - сразу минус около 10% производительности по сравнению с работой через сокет.

С уважением, Windows.

siv1987
На сайте с 02.04.2009
Offline
427
#12
ortegas:
Логично, логическое значение это true - 1, false - 0, а TINYINT, это уже 256 вариантов

True/false - один байт. Tinyint - один байт, так что для тех кому нужно true -false разницы никакой.

IL
На сайте с 20.04.2007
Offline
435
#13
siv1987:
True/false - один байт. Tinyint - один байт, так что для тех кому нужно true -false разницы никакой.

Формально True/False - один бит.

Т.е. если имеется несколько (скажем, 8 штук) логических флагов - их вполне можно уместить в 1 байт...

Проверять битовыми операциями

flags & 4 = 1

Другое дело, что если для любого из них появится третье состояние...

ortegas:
Наоборот стараюсь больше информации засунуть в ОЗУ, вместо того чтобы генерировать или считывать с файла каждый раз.

Думаю, основная мысль была в том, чтобы "не раскидываться" байтами без надобности..

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
AutoBlogger
На сайте с 05.10.2011
Offline
128
#14
rerighter:
Минусы обычного INT, когда Вам в базе нужно хранить булевое значение в том, что INT выжирает больше памяти.

IMT памяти занимает больше, зато работает (читается/пишется) быстрее. На уровне машинного кода.

🪄 www.cyberseo.net - плагин для создания автоблогов под WordPress, с поддержкой OpenAI GPT, Anthropic Claude, Google Gemini, Llama, Mistral, Midjourney, FLUX, Stable Diffusion | 📣 Импорт RSS / XML / JSON/ CSV / HTML
O
На сайте с 29.05.2008
Offline
195
#15
AutoBlogger:
IMT памяти занимает больше, зато работает (читается/пишется) быстрее. На уровне машинного кода.

Во! Это вполне возможно. Наверное, стоит прогнать бенчмарки.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий