mysql數據庫blob長度(mysql大字段blob)

本文目錄一覽:

什麼是blob,mysql blob大小配置介紹

是一種數據庫的數據類型,BLOB是按二進制來存儲的。

MySQL中,BLOB是個類型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,這幾個類型之間的唯一區別是在存儲文件的最大大小上不同。

TinyBlob 最大 255字節

Blob 最大 65K

MediumBlob 中等16M

LongBlob 最大 4G

如何得到Mysql blob字段的長度

mysql版本 5.1

表類型: innodb, row_format=compact (這是默認的行格式)

插入超過10個blob, blob的數據量很小(768字節), 插入成功。

插入超過10個blob, blob的數據量很大(768字節), 插入失敗:報 Got error 139 from storage engine。

注意,如果mysql服務器版本是5.1, innodb_file_format選項不存在, 也就無從談起Barracuda格式。 設置row_format=dynamic也是沒意義的。

mysql版本 5.5

表類型: innodb, row_format=compact (這是默認的行格式)

插入超過10個blob, blob的數據量很大(768字節), 插入失敗:報 Row size too large ( 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

表類型: innodb, row_format=dynamic (這是innodb的新文件存儲格式Barracuda所支持的行格式)

插入超過10個blob, blob的數據量很大(768字節), 插入成功

備註:

1) 實際測試測試我用的每個字段長度都是100K+

2) 對於mysql5.5, 雖然支持Barracuda。但是默認使用的還是老的格式:Antelope

除非在mysql的配置裡面my.cnf修改:

innodb_file_per_table = 1

innodb_file_format = Barracuda

或者set global 命令動態的修改:

SET GLOBAL innodb_file_format=barracuda;

SET GLOBAL innodb_file_per_table=1;

注意:

1) 修改後的innodb_file_format格式, 隻影響後續創建的表。 也就是後續創建的表,可以支持把row_format設為dynamic

2) SET GLOBAL 只是在mysql服務器運行期間有效,重啟後innodb_file_format還原為原來的格式。

3) 判斷一個表是否支持超過10個blob的字段的簡單辦法:

show table status like ‘t1’ \G

查看 Row_format , 如果是Compact, 必定不支持, 如果是dynamic, 則支持。

什麼是blob,mysql blob大小配置介紹

BLOB是一個大文件,典型的BLOB是一張圖片或一個聲音文件,由於它們的尺寸,必須使用特殊的方式來處理(例如:上傳、下載或者存放到一個數據庫)。根據Eric Raymond的說法,處理BLOB的主要思想就是讓文件處理器(如數據庫管理器)不去理會文件是什麼,而是關心如何去處理它。但也有專家強調,這種處理大數據對象的方法是把雙刃劍,它有可能引發一些問題,如存儲的二進制文件過大,會使數據庫的性能下降。在數據庫中存放體積較大的多媒體對象就是應用程序處理BLOB的典型例子。mysql BLOB類型MySQL中,BLOB是個類型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,這幾個類型之間的唯一區別是在存儲文件的最大大小上不同。MySQL的四種BLOB類型類型 大小(單位:字節)TinyBlob 最大 255Blob 最大 65KMediumBlob 最大 16Mlinux修改etc/my.cnf[mysqld]max_allowed_packet = 16M //不同於[mysqldump]下的max_allowed_packet

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/246205.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:13
下一篇 2024-12-12 13:13

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Python怎麼導入數據庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的數據庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • Python列表長度怎麼算

    本文將從以下多個方面闡述Python列表長度的計算方式,包括len()函數、循環遍歷、切片、列表推導式等。 一、使用len()函數計算列表長度 計算列表長度最常見的方法是使用Pyt…

    編程 2025-04-28

發表回復

登錄後才能評論