1. 程式人生 > >mysql資料庫text、varchar、blob資料型別比較

mysql資料庫text、varchar、blob資料型別比較

MySQL存在text和blob:

(1)相同

  • 在TEXT或BLOB列的儲存或檢索過程中,不存在大小寫轉換,當未執行在嚴格模式時,如果你為BLOB或TEXT列分配一個超過該列型別的最大長度的值值,值被擷取以保證適合。如果截掉的字元不是空格,將會產生一條警告。使用嚴格SQL模式,會產生錯誤,並且值將被拒絕而不是擷取並給出警告.
  • BLOB和TEXT列不能有 預設值.
  • 當儲存或檢索BLOB和TEXT列的值時不刪除尾部空格。(這與VARBINARY和VARCHAR列相同).
  • 對於BLOB和TEXT列的索引,必須指定索引字首的長度。對於CHAR和VARCHAR,字首長度是可選的.

(2)相異 

 text :

  • TEXT值是大小寫不敏感的
  • Text被視為非二進位制字串
  • TEXT列有一個字符集,並且根據字符集的 校對規則對值進行排序和比較
  • 可以將TEXT列視為VARCHAR列
  • MySQL連線程式/ODBC將TEXT值定義為LONGVARCHAR
  • BLOB 可以儲存圖片,TEXT不行,TEXT只能儲存純文字檔案。4個TEXT型別TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT對應於4個BLOB型別,並且有同樣的最大長度和儲存需求。

blob:  

  • BLOB值的排序和比較以大小寫敏感方式執行;
  • BLOB被視為二進位制字串;
  • BLOB列沒有字符集,並且排序和比較基於列值位元組的數值值。

  • 在大多數方面,可以將BLOB列視為能夠足夠大的VARBINARY列

  • MySQL連線程式/ODBC將BLOB值定義為LONGVARBINARY
  • 一個BLOB是一個能儲存可變數量的資料的二進位制的大物件。4個BLOB型別TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB僅僅在他們能儲存值的最大長度方面有所不同。

(3)其他:

VARCHAR,BLOB和TEXT型別是變長型別,對於其儲存需求取決於列值的實際長度(在前面的表格中用L表示),而不是取決於型別的最大可能尺寸。例如,一個VARCHAR(10)列能儲存最大長度為10個字元的一個字串,實際的儲存需要是字串的長度 ,加上1個位元組以記錄字串的長度。對於字串'abcd',L是4而儲存要求是5個位元組。
    BLOB和TEXT型別需要1,2,3或4個位元組來記錄列值的長度,這取決於型別的最大可能長度。VARCHAR需要定義大小,有255的最大限制;TEXT則不需要。如果你把一個超過列型別最大長度的值賦給一個BLOB或TEXT列,值被截斷以適合它。

CHAR(n) 固定長度,最多 255 個字元
VARCHAR(n) 可變長度,MySQL 4.1 及以前最大 255 字元,MySQL 5 之後最大 65535 位元組
TINYTEXT 可變長度,最多 255 個字元
TEXT 可變長度,最多 65535 個字元
MEDIUMTEXT 可變長度,最多 16777215(2^24 - 1)個字元
LONGTEXT 可變長度,最多 4294967295(2^32 - 1)(4G)個字元

對含有TEXT和BLOB欄位的表,如果經常做刪除和修改記錄的操作要定時執行optimize table功能對錶的碎片整理;

文章轉載:http://blog.csdn.net/zuiaituantuan/article/details/6115938

相關推薦

mysql資料庫textvarcharblob資料型別比較

MySQL存在text和blob: (1)相同 在TEXT或BLOB列的儲存或檢索過程中,不存在大小寫轉換,當未執行在嚴格模式時,如果你為BLOB或TEXT列分配一個超過該列型別的最大長度的值值,值被擷取以保證適合。如果截掉的字元不是空格,將會產生一條警告。使用嚴格SQL模式,會產生錯誤,並且值將被拒絕而不

mysql資料庫中的bit是何種資料型別

Bit稱為位資料型別,其資料有兩種取值:0和1,長度為1位。在輸入0以外的其他值時,系統均把它們當1看待。這種資料型別常作為邏輯變數使用,用來表示真、假或是、否等二值選擇。 SQL Server中儲存資料的一種型別,只能儲存true/false,程式讀取資料庫出來之後的表現形式是true或者fals

MySql中的CHARVARCHARTEXTBLOB型別

原文地址:http://www.cnblogs.com/doit8791/archive/2012/05/28/2522556.html 今天新開始的專案在做資料庫設計,發現自己對MySql的varchar型別還不熟悉,故又上網收集資料整理如下。 1.varchar型

MySQL資料庫實驗:任務二 表資料的插入修改及刪除

目錄 任務二 表資料的插入、修改及刪除 一、利用介面工具插入資料 二、資料更新 (一)利用MySQL命令列視窗更新資料 (二)利用Navicat for MySQL客戶端工具更新資料 三、資料庫的備份與還原

MySQL效能優化之charvarchartext的區別

     參考:https://dev.mysql.com/doc/refman/8.0/en/string-type-overview.html      在儲存字串時, 可以使用char、varchar或者text型別, 那麼具體使用場景呢?         參考下面這

Django下mysql資料庫的相關操作(建立資料以及增刪查改)

如有疑惑或錯誤之處可評論或郵箱聯絡博主:[email protected] 本文主要記錄了在django下使用mysql資料庫時的相關操作,包括建立資料庫、資料表、以及增刪查改。 博主開發環境:Ubuntu16.04,python2.7,d

[原]敏捷開發專案中升級mysql資料庫,談談結構資料比對,navicat for mysql + dbForge Data Compare for MySQL 足矣!

在公司專案中,我有幸負責製作“升級指令碼”。升級指令碼,無疑兩步,先結構比對,再初始資料比對。 一、結構比對 結構比對比較簡單,使用navicat for mysql 工具,“工具”-“結構同步”,選擇好“源”、“目標

mysql資料庫中命令列下常用命令的操作(增查)和資料型別

identified by "";   第四招: 操作資料庫   登入到mysql中,然後在mysql的提示符下執行下列命令,每個命令以分號結束。   1、 顯示資料庫列表。   show databases;   預設有兩個資料庫:mysql和 test。 mysql庫存放著mysql的系統和使

知識點:SQL中charvarchartext區別

超過 ID 指定 一個 最大 只知道 我們 ber pan Char為定長,varchar,text為變長、 1、CHAR。CHAR存儲定長數據很方便,CHAR字段上的索引效率級高,比如定義char(10),那麽不論你存儲的數據是否達到了10個字節,都要占去10個字

SQL中charvarcharnvarchartext 的區別

utf 包含 索引 區別 了解 byte 地方 安全 字符集 char char是定長的,也就是當你輸入的字符小於你指定的數目時,char(8),你輸入的字符小於8時,它會再後面補空值。當你輸入的字符大於指定的數時,它會截取超出的字符。 nvarchar(n) 中

阿里P8架構師談:MySQL資料庫的索引原理與慢SQL優化的5大原則

MySQL憑藉著出色的效能、低廉的成本、豐富的資源,已經成為絕大多數網際網路公司的首選關係型資料庫。雖然效能出色,但所謂“好馬配好鞍”,如何能夠更好的使用它,已經成為開發工程師的必修課,我們經常會從職位描述上看到諸如“精通MySQL”、“SQL語句優化”、“瞭解資料庫原理”等要求。 我們知道一般

mysql資料庫的完整備份差異備份增量備份

完整備份:(t為資料庫名) Mysql -uroot -pPassword  t -e "FLUSH TABLES";  // 關閉所有開啟的表, 把記憶體中的快取寫入磁碟 Mysql -uroot -pPassword  t -e "FLUSH TABLES WITH

MySQL資料庫:RESET MASTERRESET SLAVEMASTER_INFORELAY_LOG_INFO

MySQL資料庫:RESET MASTER、RESET SLAVE、MASTER_INFO、RELAY_LOG_INFO RESET MASTER 刪除所有index file中記錄的所有binlog檔案,將日誌索引檔案清空,建立一個新的日誌檔案,這個命令通常僅僅用於第一次用於搭建主從關係的時的主庫 注意

java生成mysql資料庫建表語句欄位欄位型別欄位註釋,可實現不用mysqldump備份資料庫

使用 mysqldump 備份資料庫也是可行的,因為每次備份的時候都需要mysqldump這個檔案, 我在windows備份時沒問題,但是放到linux上面時,centos系統死活不認這個檔案,但又不想裝mysql,一氣之下自己研究了個不需要mysqldump就可以備份的程式, 如果看了以下程式

使用Mycat實現Mysql資料庫的主從複製讀寫分離分表分庫負載均衡和高可用

Mysql叢集搭建 使用Mycat實現Mysql資料庫的主從複製、讀寫分離、分表分庫、負載均衡和高可用(Haproxy+keepalived),總體架構:   說明:資料庫的訪問通過keepalived的虛擬IP訪問HAProxy負載均衡器,實現HAProxy的高可用,HAProxy用於實

Mysql -- hexvarcharnumber 相互轉換

hex(‘20’)= 14 select HEX(20) from DUAL – result: 14 然後這串數字就能變為16進位制字串,只需要加上0x的字首! UNHEX(‘14’) – 每對十六進位制數字轉化為一個字元。 UNHEX(‘14’),對

用C語言操作MySQL資料庫,進行連線插入修改刪除等操作

  很多人用到MySQL來開發一些專案,有時為了效能,我們會直接用C語言來開發相關的模組,尤其在我們的web應用中,雖然PHP、JSP等指令碼均提供了MySQL的介面,但是顯然直接使用C語言具有更好的安全性和效能,Michael以前用PHP開發的多個專案中就使用了C語言編寫的

SQL資料型別charvarcharncharnvarcher型別的區別

【前言】 昨天在驗專案的時候,師傅提到了字串型別的資料怎麼儲存在資料庫中,我回答的似是而非,所以有了今天的這篇部落格,讓我再次詳細的去了解和熟悉儲存字串型別資料在資料庫中應該要建立怎樣的表結構,如何節省系統資源。 【正文】 Char與Varchar   c

mysql 資料庫處理高併發 大資料量 .日常軍規

?6?1 來自一線的實戰經驗?6?1 每一軍規背後都是血淋淋教訓?6?1 丌要華麗,叧要實用?6?1 若有一條讓你有所受益,慰矣?6?1 主要針對資料庫開發人員總是在災難發生後,才想起容災的重要性;總是在吃過虧後,才記得曾經有人提醒過。目錄一.核心軍規(5)二.欄位類軍規(6)三.索引類軍規(5)四.SQL類

MySQL中dateyeardatetimetimestamp和time資料型別的區別

MySQL 日期型別:日期格式、所佔儲存空間、日期範圍 比較。 日期型別 儲存空間 日期格式 日期範圍 datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59