|
|
|
ASE 12.5 char vs varchar
|
|||
|---|---|---|---|
|
#18+
Господа, подскажите в чём разница между char и varchar. В теории понятно, что char добивает пробелами значение до указанной длинны, а varchar занимает столько места сколько значение + 2 бита на хранение длины. Когда происходит insert, что быстрее char или varchar? Когда просто читаем, есть ли разница если индекс на char или varchar? Если есть хорошие ссылки, буду заранее за них благодарен, а то ничего не получается найти. Заранее большое спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 00:54 |
|
||
|
ASE 12.5 char vs varchar
|
|||
|---|---|---|---|
|
#18+
Kru Когда происходит insert, что быстрее char или varchar? Одинаково, это сказывается больше на Updat'ах! Kru Когда просто читаем, есть ли разница если индекс на char или varchar? При чтении тоже одинаково! Хотя при varchar индекс может быть меньше, а значит и быстрей! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 11:47 |
|
||
|
ASE 12.5 char vs varchar
|
|||
|---|---|---|---|
|
#18+
cherrex_DenKru Когда происходит insert, что быстрее char или varchar? Одинаково, это сказывается больше на Updat'ах! Kru Когда просто читаем, есть ли разница если индекс на char или varchar? При чтении тоже одинаково! Хотя при varchar индекс может быть меньше, а значит и быстрей! Большое спасибо! А можно попродробнее - как сказывается на update? Char реально хранит пробелы или ужимается до актуального значения. По поводу индексов - нужно ли обязательно ставить поля переменной длины в конец (в случае с композитными индексами)? Заранее большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 18:04 |
|
||
|
ASE 12.5 char vs varchar
|
|||
|---|---|---|---|
|
#18+
Вот тут нашёл интересную статейку - смысл которой - только char not null добиваются пробелами, char null ведёт себя как varchar Какая-тогда получается разница при выборе между char и varchar для nullable столбцов? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 18:31 |
|
||
|
ASE 12.5 char vs varchar
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, за монолог :-) Но, кажись, нашёл, что искал - тынц * Data in fixed-length columns is blank-padded to the column length. For the char and unichar datatypes, storage size is n bytes, (unichar = n*@@unicharsize); for the nchar datatype, n times the average national character length (@@ncharsize). When you create a char, unichar, or nchar column that allows nulls, Adaptive Server converts it to a varchar, univarchar, or nvarchar column and uses the storage rules for those datatypes. This is not true of char and nchar variables and parameters. * Data in variable-length columns is stripped of trailing blanks; storage size is the actual length of the data. For varchar or univarchar columns, this is the number of characters; for nvarchar columns, it is the number of characters times the average character length. Variable-length character data may require less space than fixed-length data, but it is accessed somewhat more slowly. Последний вопрос - почему varchar более медленная? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 18:40 |
|
||
|
ASE 12.5 char vs varchar
|
|||
|---|---|---|---|
|
#18+
Kru wrote: > подскажите в чём разница между char и varchar. > В теории понятно, что char добивает пробелами значение до указанной > длинны, а varchar занимает столько места сколько значение + 2 бита на > хранение длины. два байта, наверное ? На самом деле нет никаких двух байт, если я не ошибаюсь, посколку длина поля и так переменная в ASE, то ничего дополнительно не хранится. > Когда происходит insert, что быстрее char или varchar? При одинаковых длинах в скобках конечно varchar быстрее. Просто потому что он в среднем короче. CHAR(20) в среднем имеет длину 20, VARCHAR(20) в среднем (при равномерном распред.) имеет длину 10. Другой вопрос, что разница конечно не катастрофическая. И зависит, естественно, от реальных данных. > Когда просто читаем, есть ли разница если индекс на char или varchar? В индексе всегда данные префиксно сжимаются. Там разницы нет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 21:38 |
|
||
|
ASE 12.5 char vs varchar
|
|||
|---|---|---|---|
|
#18+
Kru wrote: > Какая-тогда получается разница при выборе между char и varchar для > nullable столбцов? nullable char врутри всё равно хранится как varchar, где-то это было написано. Но мой совет -- не гонитесь за этими фиговыми выигрышеми, исходите из семантики данных. Фиксированная длина -- CHAR. Переменная -- VARCHAR. Ну и я реально CHAR -поля очень редко бывают, только разве что полусурогатные ключи какие-то, шифры искусственные, но внешние для БД. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 21:41 |
|
||
|
ASE 12.5 char vs varchar
|
|||
|---|---|---|---|
|
#18+
MasterZiv Kru wrote: > Какая-тогда получается разница при выборе между char и varchar для > nullable столбцов? nullable char врутри всё равно хранится как varchar, где-то это было написано. Но мой совет -- не гонитесь за этими фиговыми выигрышеми, исходите из семантики данных. Фиксированная длина -- CHAR. Переменная -- VARCHAR. Ну и я реально CHAR -поля очень редко бывают, только разве что полусурогатные ключи какие-то, шифры искусственные, но внешние для БД. Большое спасибо за отклик. Да я и не гоняюсь, собственно. На собеседовании спросили :-) и я поплыл :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2009, 19:49 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=36257574&tid=2010865]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 251ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...