Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DB2LUW char vs varchar
|
|||
|---|---|---|---|
|
#18+
Господа, подскажите в чём разница между char и varchar. В теории понятно, что char добивает пробелами значение до указанной длинны, а varchar занимает столько места сколько значение + 2 бита на хранение длины. Когда происходит insert, что быстрее char или varchar? Когда просто читаем, есть ли разница если индекс на char или varchar? Какие критерии выбора? Если есть хорошие ссылки, буду заранее за них благодарен, а то ничего не получается найти. Заранее большое спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 00:53 |
|
||
|
DB2LUW char vs varchar
|
|||
|---|---|---|---|
|
#18+
Varchar применяют когда длины в column сильно различается (так ФИО работников). Varchar позволяет экономить размер таблицы (table size). Если длина column постоянна, или редко меняется (так ID работника) применяют вместо Varchar Char(n) . В настоящее время Varchar может быть частью индекса.... http://publib.boulder.ibm.com/cgi-bin/bookmgr/SEARCH?Book=dsnsqk16&searchRequest=varchar&SEARCH=Search&Type=FUZZY&SHELF=&DT=20090505112816&searchTopic=TOPIC&searchText=TEXT&searchIndex=INDEX&rank=RANK Lenny K. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 02:16 |
|
||
|
DB2LUW char vs varchar
|
|||
|---|---|---|---|
|
#18+
All about Varchar: http://publib.boulder.ibm.com/cgi-bin/bookmgr/SEARCH?Book=dsnsqk16&searchRequest=varchar&SEARCH=Search&Type=FUZZY&SHELF=&DT=20090505112816&searchTopic=TOPIC&searchText=TEXT&searchIndex=INDEX&rank=RANK Lenny ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 02:19 |
|
||
|
DB2LUW char vs varchar
|
|||
|---|---|---|---|
|
#18+
Большое спасибо. К сожалению, не удалось пока найти ответы, т.к. ссылок очень много и они уводят куда-то в сторону. Я параллельно исследовал тот же вопрос для Sybase и там мне повезло больше - удалось найти несколько интересных статей - вот здесь мой постинг. В Sybase char ведёт себя как char только в случае если поле не допускает NULL. В противном случае происходит скрытый перевод в varchar. Даётся понять, что varchar более медленные, но не указывается почему. Ведёт ли DB2 LUW себя подобным образом в отношении char? Есть ли разница в производительности для этих 2х типов? Чем вызвана? Пока, я вижу только разницу в том, что char не может быть больше 255 символов, в то время как varchar формально разрешает 32 672, но при этом, после 4000 символов возникают некоторые ограничения ( вот здесь написано ) Т.е. если поле может потребовать больше 255 символов, то char мы уже использовать не сможем, но как выбрать правильный тип для полей в пределах 255 символов? Если скажем, размер значения может гулять в пределах 10-20 символов в поле длинной 128 символов, то что будет лучше char или varchar? Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 19:00 |
|
||
|
DB2LUW char vs varchar
|
|||
|---|---|---|---|
|
#18+
Kru, - char обрабатывается эффективнее varchar (трудно сказать, насколько) - char(n) занимает больше места на диске и в памяти, чем varchar(n), но это если фактическая длина значения поля меньше, чем n-4 (для varchar дополнительно используется 4 байта для служебных нужд) - при обновлении varchar, если в поле пишется более длинное значение, чем изначально было вставлено, может возникнуть переполнение записи, т.е. ситуация, когда запись физически переносится в другое место, а со старого места в новое ставится указатель. Соответственно, доступ к таким записям замедляется, и может понадобиться реорганизация таблицы для устранения этой ситуации. В вашем случае, если в среднем используется по 10-20 символов из 128, то вы можете сильно потерять в производительности из-за лишнего места для char. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2009, 12:03 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=36259022&tid=1603041]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
3ms |
| others: | 13ms |
| total: | 169ms |

| 0 / 0 |
