Varbinary против Blob в MySQL

как насчет x x x x x? это все еще быстрее, чем x ** 5?

, поскольку индексы int увеличиваются, причем полномочия могут быть быстрее, чем умножение. но число, в котором происходит фактический кроссовер, зависит от различных условий, поэтому, на мой взгляд, именно поэтому оптимизация не была выполнена (или не может быть выполнена) на уровне языка / библиотеки. Но пользователи могут по-прежнему оптимизировать некоторые специальные случаи:)

23
задан Jimmyb 12 December 2011 в 15:52
поделиться

4 ответа

VARBINARY связан с 255 байтами в MySQL 5.0.2 и ниже, с 65kB в 5.0.3 и выше.

BLOB связан с 65 кБ.

В конечном счете, VARBINARY практически совпадает с BLOB (с точки зрения того, что в нем может храниться), если только вы не хотите сохранить совместимость со «старыми» версиями MySQL. Документация MySQL гласит:

В большинстве случаев вы можете рассматривать столбец BLOB как столбец VARBINARY, который может быть настолько большим, насколько вам нравится.

18
ответ дан Romain 12 December 2011 в 15:52
поделиться

Стоит отметить, что механизм хранения памяти не поддерживает BLOB / TEXT, но работает с VARBINARY.

5
ответ дан matt 12 December 2011 в 15:52
поделиться

Я просто смотрю на тестовое приложение, которое хранит около 5 тыс. Двоичных данных в столбце. Первоначально он использовал varbinary, но так как он очень медленный, я решил попробовать blob. Ну, я смотрю на скорость записи на диск поверх и не вижу никакой разницы.

Единственное существенное отличие, которое я прочитал в руководстве по mysql, заключается в том, что движок памяти не поддерживает двоичные объекты, поэтому любые временные таблицы, создаваемые с помощью запросов (см., Когда mysql использует временные таблицы ), будут создаваться на диске и это намного медленнее. Так что лучше ставить на varbinary / binary, если он достаточно короткий, чтобы поместиться в строку (на данный момент всего 64 тыс. Для всех столбцов).

0
ответ дан akostadinov 12 December 2011 в 15:52
поделиться

На самом деле blob может быть больше (есть tinyblob, blob, mediumblob и longblob http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html ) с до 2 ^ 32 -1 на ограничение размера.

Кроме того, хранилище больших двоичных объектов растет «за пределами» строки, в то время как максимальный размер varbinary зависит от количества доступного свободного размера строки (так что на самом деле он может быть меньше 64 КБ).

Существуют некоторые незначительные различия между

1) При использовании сценариев индекса (для blob требуется размер префикса для индексов, а для varbinary нет) http: /en/column-indexes.html
тест CREATE TABLE (blob_col BLOB, INDEX (blob_col (10)));

2) Как уже упоминалось, существуют разные проблемы с пробелами в varbinary & amp; blob на MySql 5.0.x или более ранних версиях: http: ///en/blob.html http: ///en/binary-varbinary.html

(усечение ссылок, поскольку stackoverflow думает тоже многие ссылки являются спамом)

14
ответ дан Manikandan S 12 December 2011 в 15:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: