Почему в MySQL много разных типов полей? - PullRequest
2 голосов
/ 18 мая 2011

Так как данные классифицируются как int, десятичное число, текст (строка), дата, перечисление, почему mysql все еще нужно классифицировать их на большее количество групп как текст разделяется на char, varchar, text, tinytextтак далее?Я знал, что это сделает это быстрее, но какова связь между разделением на несколько групп и ускорением?В чем причина?

Извините за мой плохой английский.

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Количество вариаций для типов символьных строк является признаком прогресса. В идеальном мире старые типы будут удалены, а новые и улучшенные типы заменят их. Но в реальном мире унаследованная совместимость требует, чтобы типы полей, например, вели себя как обработка строк COBOL 1960-х годов для приложений, которые ожидают этого. Таким образом, пэды типа char(20) с завершающими пробелами действуют как карта перфорации ключей IBM.

Думайте о различных подтипах как о наборе отверток, некоторых маленьких, некоторых больших. У каждого есть узкий диапазон соответствующего использования. Если вы работаете над карманными часами, большие отвертки не понадобятся. Но если приложение - мостостроение, то микро точные отвертки остаются неиспользованными, а крупные используются. Базы данных очень похожи.

1 голос
/ 18 мая 2011

Ну, главная причина - память. См. Адрес представляет собой текстовую информацию, имя - это текстовая информация, если вы хотите сохранить какое-либо значение, например yes, а no - это также текстовое значение, если вы хотите получить комментарий или сообщение от любого из них, оно также text значение. Все эти ценности требуют разных воспоминаний. Когда вы говорите о большой системе, память является важным фактором. Например, если вы установите text type для всей текстовой информации, это очень плохая практика. Так что MySQL классифицируется на разные вещи. Например, если вы хотите сохранить имя, вы можете использовать varchar(50), если вы хотите сохранить адрес, вы можете даже использовать varchar(255). Если вы хотите сохранить пост или комментарий, описание или любую другую вещь, которую вы можете использовать text. Если вы хотите использовать yes и no как информацию, вы можете использовать char. Я надеюсь, что вы поняли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...