|
|
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
Помогите разобраться. Есть тип данных VARCHAR, раньше максимальная длина его была 255 символов, потом увеличили до 65535. Также есть тип TEXT у которого длина также 65535 символов. Помимо этого, данные TEXT хранятся отдельно от основной таблицы что увеличивает время доступа к ним. Отсюда вопрос: зачем вообще нужен TEXT, если он по всем параметрам проигрывает VARCHAR (и это при одинаковой длине строки)? Просто я заметил что TEXT до сих пор во всю используется в разных БД и по сей день. Может него все же есть какие-то преимущества относительно VARCHAR? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2014, 22:40:21 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
интересно сколько вы варчаров в таблицу сможете запихать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2014, 23:47:26 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
В VARCHAR Вы можете указать, сколько символов будет храниться в атрибуте. Например, VARCHAR(5) - 5 символов. В TEXT количество символов определяется вариантом этого типа данных: TINYTEXT - 256 байт, LONGTEXT - 4 гигабайта. И если Вы в атрибуте типа TINYTEXT храните 1 символ, то оставшееся простанство заполняется нулями. Это увеличивает время поиска и сортировки по этому атрибуту. Так же, как я понимаю, TEXT хранится не в самой таблице, а где то за её пределами. Почитайте эту статью, раздел COLLATIONS, то, что выделено красным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 01:52:50 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
AfelionИ если Вы в атрибуте типа TINYTEXT храните 1 символ, то оставшееся простанство заполняется нулямиА пацаны-то не знают (с) раз: http://dev.mysql.com/doc/refman/5.0/en/blob.html For TEXT and BLOB columns, there is no padding on insert and no bytes are stripped on selec t. два:авторStorage Requirements for String Types <...> Data TypeStorage RequiredBLOB, TEXTL + 2 bytes, where L < 2^16 В общем, не болтайте ерундой И ещё. Вот тутAfelionВ VARCHAR Вы можете указать, сколько символов будет храниться в атрибуте. Например, VARCHAR(5) - 5 символов.надо бы уточнить, что это максимальное количество символов, которое может храниться в варчаре. Можно хранить и меньше (и места короткие строки занимать будут соответственно меньше). То же самое, собственно, и в text. Да и в статье корявенько описано - НСД никакие нули никуда не добавляются - строки добиваются пробелами до равной длины. Впрочем, идея объяснена верно. А вот выделенное красным - чушь. При сравнении строки добиваются до длины максимальной из имеющихся строк, вовсе не до максимально допустимой длины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 07:43:53 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
tanglirПри сравнении строки добиваются до длины максимальной из имеющихся строкТехнически оно, может, и так. Не знаю, в код не смотрел. Но, замечу, алгоритмически это ни к чему. А вот не балуется ли MySQL plain-буфером при сортировке - надо посмотреть. Некие смутные подозрения на эту тему у меня уже были. Найдется кто-нибудь, кому не лень поставить эксперимент? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 09:44:37 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
автор Because BLOB and TEXT values can be extremely long, you might encounter some constraints in using them: Only the first max_sort_length bytes of the column are used when sorting. The default value of max_sort_length is 1024. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 12:28:44 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
Итак, прочитав сообщения, я так и не увидел ни одного преимуществу у TEXT относительно VARCHAR. Но почему он тогда по прежнему используется повсеместно? Вот таблица постов в Wordpress, к примеру. Короткие данные хранятся в VARCHAR а заголовок постов и текст постов хранится в TEXT, хотя и для них хватило бы VARCHAR. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 17:55:47 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
Richard BИтак, прочитав сообщения, я так и не увидел ни одного преимуществу у TEXT относительно VARCHAR.Хоть и несколько расплывчато, но ответ был в первом же посте. http://dev.mysql.com/doc/refman/5.5/en/column-count-limit.html Every table (regardless of storage engine) has a maximum row size of 65,535 bytes. Storage engines may place additional constraints on this limit, reducing the effective maximum row size. ... BLOB and TEXT columns count from one to four plus eight bytes each toward the row-size limit because their contents are stored separately from the rest of the row. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 18:01:19 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
Richard BИтак, прочитав сообщения, я так и не увидел ни одного преимуществу у TEXT относительно VARCHAR. Но почему он тогда по прежнему используется повсеместно? Вот таблица постов в Wordpress, к примеру. Короткие данные хранятся в VARCHAR а заголовок постов и текст постов хранится в TEXT, хотя и для них хватило бы VARCHAR. авторинтересно сколько вы варчаров 65535 в таблицу сможете запихать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 18:03:22 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
ScareCrow, Была задача впихнуть как можно более длинные varchar-ы в таблицу. Вот что реально получилось в таблицу (Inno, 5.6 ) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Никакими 65535 символами там и близко не пахнет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 18:09:50 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
MasterZivScareCrow, Была задача впихнуть как можно более длинные varchar-ы в таблицу. Вот что реально получилось в таблицу (Inno, 5.6 ) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Никакими 65535 символами там и близко не пахнет.Ну да, примерно 40 Кбайт получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 18:18:13 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
авторинтересно сколько вы варчаров 65535 в таблицу сможете запихать Хорошо, тогда изменю вопрос: зачем нужен TINYTEXT (с максимальной диной в 255 символов) если когда можно создать VARCHAR(255) который к тому же работает чуть быстрее за счет того что хранится в таблице а не отдельно? И вопрос в догонку: типы данных TINYTEXT, TEXT, MEDIUMTEXT и LONGTEXT занимают столько сколько в низ помещено данных или они всегда округляются до максимальной длины? То есть поле TINYTEXT с одним символом будет занимать один байт или 255? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 18:34:52 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
авторинтересно сколько вы варчаров 255 в таблицу сможете запихать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 19:24:05 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
ScareCrowавторинтересно сколько вы варчаров 255 в таблицу сможете запихать Эм, наверное я что-то не так знаю? Количество варчаров в таблице ограничено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 19:27:18 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
чукча нечетатель? автор http://dev.mysql.com/doc/refman/5.5/en/column-count-limit.html Every table (regardless of storage engine) has a maximum row size of 65,535 bytes. Storage engines may place additional constraints on this limit, reducing the effective maximum row size. ... BLOB and TEXT columns count from one to four plus eight bytes each toward the row-size limit because their contents are stored separately from the rest of the row ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 19:30:04 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
ScareCrowчукча нечетатель? Не могу в технический английский, а гуглотранслейтер переводит не очень внятно. Из написанного понял, что длина строки БД может быть не более 65535 байт. Получается что если создать таблицу с полем VARCAHR(65535) то уже не будет возможности добавить в неё другие поля, так-как строка таблицы будет уже полностью занятой. Я всё правильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 19:38:35 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
Richard BПолучается что если создать таблицу с полем VARCAHR(65535) то уже не будет возможности добавить в неё другие поля, так-как строка таблицы будет уже полностью занятой. Я всё правильно понял?Правильно. Причем даже такую таблицу создать не сможете, т.к. еще нужно несколько байт на накладные расходы. И, заметьте, ограничение в байтах, а не в символах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 19:57:53 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
miksoftRichard BПолучается что если создать таблицу с полем VARCAHR(65535) то уже не будет возможности добавить в неё другие поля, так-как строка таблицы будет уже полностью занятой. Я всё правильно понял?Правильно. Причем даже такую таблицу создать не сможете, т.к. еще нужно несколько байт на накладные расходы. И, заметьте, ограничение в байтах, а не в символах. Спасибо большое! Теперь все стало понятно. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 22:07:19 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
попробывал в dbforge создать таблицу с одним полем varchar(65536) получил облом - пишет о максимальгной длине в 21845 байт. что это за странное число? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 09:00:04 |
|
||
|
VARCHAR vs TEXT
|
|||
|---|---|---|---|
|
#18+
зы кодировка utf8 если использовать latin1 длина 65532 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 09:05:23 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38639070&tid=1834843]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 309ms |

| 0 / 0 |
