powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Зачем существует tinytext
13 сообщений из 13, страница 1 из 1
Зачем существует tinytext
    #39045308
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно сабж.
Если в природе есть varchar(255), то на какой ляд разрабы mysql придумали такой тип как tinytext?
Ну или можно ещё так сформулировать вопрос: как гипотетически может выглядеть ситуация, где использование tinytext реально выгоднее, круче, необходимее, чем varchar(255)?? ведь если я правильно все понял, что varchar(255) может все то же самое, что и tinytext, но + ещё тянет null/notnull и default value

может быть если tinytext все хранит во внешней копилке, то в той копилке происходит оптимизация и хранятся только уникальные строки и тем самым там, где varchar(255) будет 1 млн. записей хранить слово "пример", то tinytext на миллионе записей будет хранить только 1 строку "пример"+ миллион указателей на эту строчку, а это типа экономия памяти в 8 раз. Может в этом сакральный смысл tinytext?
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39045328
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы опять ловите тараканов в темной комнате :)

Lumixможет быть если tinytext все хранит во внешней копилке, то в той копилке происходит оптимизация и хранятся только уникальные строки и тем самым там, где varchar(255) будет 1 млн. записей хранить слово "пример", то tinytext на миллионе записей будет хранить только 1 строку "пример"+ миллион указателей на эту строчку, а это типа экономия памяти в 8 раз. Может в этом сакральный смысл tinytext?Нет. Никакой такой оптимизации нет.

NULL, кстати, они вполне могут быть, насколько я помню.

Основная фича BLOB/TEXT заключается в том, что они отдельно хранятся. Это может быть полезно, например, в тех случаях, когда запрос требует полного сканирования таблицы, но конкретно это поле ему не требуется. Тогда объем данных, читаемых с диска, будет меньше.
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39045349
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftОсновная фича BLOB/TEXT заключается в том, что они отдельно хранятся. Это может быть полезно, например, в тех случаях, когда запрос требует полного сканирования таблицы, но конкретно это поле ему не требуется. Тогда объем данных, читаемых с диска, будет меньше.Относится ли оно так же к случаю, когда в процессе выполнения запроса будет создана временная таблица?
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39045359
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vklemiksoftОсновная фича BLOB/TEXT заключается в том, что они отдельно хранятся. Это может быть полезно, например, в тех случаях, когда запрос требует полного сканирования таблицы, но конкретно это поле ему не требуется. Тогда объем данных, читаемых с диска, будет меньше.Относится ли оно так же к случаю, когда в процессе выполнения запроса будет создана временная таблица?А вот с временными таблицами там все, наоборот, печально. Они безусловно валятся на диск.
http://dev.mysql.com/doc/refman/5.5/en/blob.html Instances of BLOB or TEXT columns in the result of a query that is processed using a temporary table causes the server to use a table on disk rather than in memory because the MEMORY storage engine does not support those data types (see Section 8.4.4, “How MySQL Uses Internal Temporary Tables”). Use of disk incurs a performance penalty, so include BLOB or TEXT columns in the query result only if they are really needed. For example, avoid using SELECT *, which selects all columns. Впрочем, при умеренной нагрузке и избытке оперативки, это лечится с помощью tmpfs.
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39045381
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftА вот с временными таблицами там все, наоборот, печально. Они безусловно валятся на диск.Это, как я понимаю, относится к случаю, если поля типа BLOB/TEXT включены в результат запроса или использованы в группировке/условии. Или же, в любом случае временная таблица будет требовать выгрузки на диск, даже если эти поля не использованы?
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39045382
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftОсновная фича BLOB/TEXT заключается в том, что они отдельно хранятся. Это может быть полезно, например, в тех случаях, когда запрос требует полного сканирования таблицы, но конкретно это поле ему не требуется. Тогда объем данных, читаемых с диска, будет меньше.

Прикольная инфа!! Я знал, что text храниться за пределами таблицы, но до сих пор мне в голову не приходило, что с помощью этого можно влиять на скорость where-секции.

PS. про тараканы согласен :) кстати, в первый раз встречаю сочетание тараканы в темной комнате. Я знаю есть выражение "это все равно, что искать черную кошку в темной комнате" и это выражение является поэтической формой бытового выражения "хрен найдешь", но чтобы тараканы в темной комнате - это некий новый образ. :-) но прикольный так-то)))
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39045428
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vklemiksoftА вот с временными таблицами там все, наоборот, печально. Они безусловно валятся на диск.Это, как я понимаю, относится к случаю, если поля типа BLOB/TEXT включены в результат запроса или использованы в группировке/условии.Именно так.
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39046945
Близнец1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Основная фича BLOB/TEXT заключается в том, что они отдельно хранятся
И соответственно их размер не влияет на maximum row size, который равен 65к.
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39047487
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixСобственно сабж.
Если в природе есть varchar(255), то на какой ляд разрабы mysql придумали такой тип как tinytext?

Когда писали MySQL, уже был ANSI/ISO-стандарт SQL. MySQL-левцы видимо очень хотели реализовать стандарт целиком.
Я думаю, просто тип есть в стандарте, вот его и реализовали. К тому же по архитектурной задумке MySQL ядро не может знать
о преимуществах или недостатках хранения определённых типов -- этим ведают engine-ы. Может и поэтому они реализовали
все типы которые только можно было реализовать.
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39049642
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, а, теперь понятно. Я, кстати, не знал что есть какие-то стандарты sql. Я думал, что компании соревнуются межу собой и хотя select * from t where id = 1 работает у всех одинаково, но как только доходит до реальной разработки все равно финальный sql rкод, особенно сложный получается под каждую субд свой... точно так же как со стандартами С++. Хотя он и есть, но у каждого компилятора все равно какие-то свои особенности. Но видимо, стандарты для чего-то другого существуют. Для общей организации, для системного порядка...
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39049647
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixЯ, кстати, не знал что есть какие-то стандарты sql. https://ru.wikipedia.org/wiki/SQL-92 и далее по списку.
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39049675
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, я просмотрел и мне почему-то кажется, что для обычных прикладных программистов подобные документы бесполезны... по-моему эти документы рассчитаны на разрабов самих СУБД, а не на кодеров, которые используют субд как инструмент...
...
Рейтинг: 0 / 0
Зачем существует tinytext
    #39049722
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixмне почему-то кажется, что для обычных прикладных программистов подобные документы бесполезныВ целом да, обычно документация по конкретной СУБД покрывает собой описание SQL, так что читать отдельно стандарт смысла нет.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Зачем существует tinytext
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]