В чем разница между использованием BLOB против текста (скорость поиска и вставки) в mariaDB - PullRequest
0 голосов
/ 26 февраля 2019

Привет. Пожалуйста, предложите мне, если я буду использовать BLOB или TEXT. У меня есть требование, где я должен хранить большое количество текста, я прочитал несколько постов, в которых все они говорили о хранилище, но не о скорости поиска и вставки (если вы собираетесь предлагать хранилище файловой системы, но это не требование проекта на данный момент). Один из них говорил, что текст работает быстрее, чем BLOB, но нет конкретных доказательств в документации, что заставило меня задать этот вопрос, пожалуйста, если вы, ребята, можете помочь мне вто же самое.

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

Короткий ответ: TEXT и BLOB будут примерно одинаковой скорости.

Длинный ответ:

  • В конечном итоге TEXT и BLOB - это просто кучабайтов.Основная стоимость вставки / извлечения таких столбцов заключается в поиске строки и ее разборе.В некоторых ситуациях байты являются «не записанными», что требует дополнительного обращения к диску (если не кэшировано).
  • Существует некоторая разница в обработке ЦП.Но это относительно незначительно.При перемещении TEXT между столом и клиентом CHARACTER SET может быть изменено ;это чего-то стоит.(Не применимо к BLOB или любым %_bin COLLATION.)
  • Другая разница ЦП: Когда данные INSERTing, символы проверяются на достоверность.Это вызывает ошибки, если у вас есть байты, которые не соответствуют кодировке, указанной для клиента.

Обратите внимание, что различия говорят, что TEXT может быть слегка медленнее, чем BLOB.

Вот еще один метод ... Если у вас есть несколько текстовых полей средней величины, на самом деле быстрее, чем TEXT или BLOB, чтобы получить client COMPRESS текст, затем сохраните его в столбце BLOB.Причина, по которой это, скорее всего, будет быстрее, заключается в том, что вокруг должно быть передано меньше байтов.И кэш buffer_pool более эффективен.(Примечание: я не говорю о ROW_FORMAT=COMPRESSED.)

0 голосов
/ 26 февраля 2019

BLOB и CLOB получение данных может занять много времени.

TEXT - это тип данных для ввода на основе текста.

Подробнее: https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...