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

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

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

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

Основная фича BLOB/TEXT заключается в том, что они отдельно хранятся. Это может быть полезно, например, в тех случаях, когда запрос требует полного сканирования таблицы, но конкретно это поле ему не требуется. Тогда объем данных, читаемых с диска, будет меньше.
...
Рейтинг: 0 / 0
07.09.2015, 22:22:58
    #39045349
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем существует tinytext
miksoftОсновная фича BLOB/TEXT заключается в том, что они отдельно хранятся. Это может быть полезно, например, в тех случаях, когда запрос требует полного сканирования таблицы, но конкретно это поле ему не требуется. Тогда объем данных, читаемых с диска, будет меньше.Относится ли оно так же к случаю, когда в процессе выполнения запроса будет создана временная таблица?
...
Рейтинг: 0 / 0
07.09.2015, 22:58:50
    #39045359
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем существует tinytext
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
08.09.2015, 00:54:41
    #39045381
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем существует tinytext
miksoftА вот с временными таблицами там все, наоборот, печально. Они безусловно валятся на диск.Это, как я понимаю, относится к случаю, если поля типа BLOB/TEXT включены в результат запроса или использованы в группировке/условии. Или же, в любом случае временная таблица будет требовать выгрузки на диск, даже если эти поля не использованы?
...
Рейтинг: 0 / 0
08.09.2015, 00:55:15
    #39045382
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем существует tinytext
miksoftОсновная фича BLOB/TEXT заключается в том, что они отдельно хранятся. Это может быть полезно, например, в тех случаях, когда запрос требует полного сканирования таблицы, но конкретно это поле ему не требуется. Тогда объем данных, читаемых с диска, будет меньше.

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

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

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


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