国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫(kù)技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫(kù) - Mysql - MySQL 中 Blob 和 Text 數(shù)據(jù)類(lèi)型詳解

MySQL 中 Blob 和 Text 數(shù)據(jù)類(lèi)型詳解

2021-12-31 23:02MySQL技術(shù) Mysql

blob(binary large object) 是一個(gè)可以存儲(chǔ)二進(jìn)制文件的容器,主要用于存儲(chǔ)二進(jìn)制大對(duì)象,例如可以存儲(chǔ)圖片,音視頻等文件。

MySQL 中 Blob 和 Text 數(shù)據(jù)類(lèi)型詳解

前言:

前面文章我們介紹過(guò)一些常用數(shù)據(jù)類(lèi)型的用法,比如 int、char、varchar 等。一直沒(méi)詳細(xì)介紹過(guò) blob 及 text 類(lèi)型,雖然這兩類(lèi)數(shù)據(jù)類(lèi)型不太常用,但在某些場(chǎng)景下還是會(huì)用到的。本篇文章將主要介紹 blob 及 text 數(shù)據(jù)類(lèi)型的相關(guān)知識(shí)。

1. blob 類(lèi)型

blob(binary large object) 是一個(gè)可以存儲(chǔ)二進(jìn)制文件的容器,主要用于存儲(chǔ)二進(jìn)制大對(duì)象,例如可以存儲(chǔ)圖片,音視頻等文件。按照可存儲(chǔ)容量大小不同來(lái)分類(lèi),blob 類(lèi)型可分為以下四種:

類(lèi)型

可存儲(chǔ)大小

用途

TINYBLOB

0 - 255字節(jié)

短文本二進(jìn)制字符串

BLOB

0 - 65KB

二進(jìn)制字符串

MEDIUMBLOB

0 - 16MB

二進(jìn)制形式的長(zhǎng)文本數(shù)據(jù)

LONGBLOB

0 - 4GB

二進(jìn)制形式的極大文本數(shù)據(jù)

 

其中最常用的就是 blob 字段類(lèi)型了,最多可存儲(chǔ) 65KB 大小的數(shù)據(jù),一般可用于存儲(chǔ)圖標(biāo)或 logo 圖片。不過(guò)數(shù)據(jù)庫(kù)并不適合直接存儲(chǔ)圖片,如果有大量存儲(chǔ)圖片的需求,請(qǐng)使用對(duì)象存儲(chǔ)或文件存儲(chǔ),數(shù)據(jù)庫(kù)中可以存儲(chǔ)圖片路徑來(lái)調(diào)用。

2. text 類(lèi)型

text 類(lèi)型同 char、varchar 類(lèi)似,都可用于存儲(chǔ)字符串,一般情況下,遇到存儲(chǔ)長(zhǎng)文本字符串的需求時(shí)可以考慮使用 text 類(lèi)型。按照可存儲(chǔ)大小區(qū)分,text 類(lèi)型同樣可分為以下四種:

類(lèi)型

可存儲(chǔ)大小

用途

TINYTEXT

0 - 255字節(jié)

一般文本字符串

TEXT

0 - 65 535字節(jié)

長(zhǎng)文本字符串

MEDIUMTEXT

0 - 16 772 150字節(jié)

較大文本數(shù)據(jù)

LONGTEXT

0 - 4 294 967 295字節(jié)

極大文本數(shù)據(jù)

不過(guò)在日常場(chǎng)景中,存儲(chǔ)字符串還是盡量用 varchar ,只有要存儲(chǔ)長(zhǎng)文本數(shù)據(jù)時(shí),可以使用 text 類(lèi)型。對(duì)比 varchar ,text 類(lèi)型有以下特點(diǎn):

  • text 類(lèi)型無(wú)須指定長(zhǎng)度。
  • 若數(shù)據(jù)庫(kù)未啟用嚴(yán)格的 sqlmode ,當(dāng)插入的值超過(guò) text 列的最大長(zhǎng)度時(shí),則該值會(huì)被截?cái)嗖迦氩⑸删妗?/li>
  • text 類(lèi)型字段不能有默認(rèn)值。
  • varchar 可直接創(chuàng)建索引,text 字段創(chuàng)建索引要指定前多少個(gè)字符。
  • text 類(lèi)型檢索效率比 varchar 要低。

下面我們來(lái)具體測(cè)試下 text 類(lèi)型的使用方法:

  1. # 創(chuàng)建測(cè)試表 字符集是 utf8 
  2. mysql> show create table tb_text\G 
  3. *************************** 1. row *************************** 
  4.        Table: tb_text 
  5. Create TableCREATE TABLE `tb_text` ( 
  6.   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵'
  7.   `a` tinytext, 
  8.   `b` text, 
  9.   `c` varchar(255) DEFAULT NULL
  10.   PRIMARY KEY (`id`) 
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 
  12.  
  13. # 創(chuàng)建索引測(cè)試 發(fā)現(xiàn)text類(lèi)型必須指定前綴長(zhǎng)度 
  14. mysql> alter table tb_text add index idx_a (a); 
  15. ERROR 1170 (42000): BLOB/TEXT column 'a' used in key specification without a key length 
  16. mysql> alter table tb_text add index idx_b (b);  
  17. ERROR 1170 (42000): BLOB/TEXT column 'b' used in key specification without a key length 
  18. mysql> alter table tb_text add index idx_c (c); 
  19. Query OK, 0 rows affected (0.04 sec) 
  20. Records: 0  Duplicates: 0  Warnings: 0 
  21. mysql> alter table tb_text add index idx_b (b(10)); 
  22. Query OK, 0 rows affected (0.06 sec) 
  23. Records: 0  Duplicates: 0  Warnings: 0 
  24.  
  25. # 插入數(shù)據(jù)測(cè)試(repeat函數(shù)用于生成重復(fù)數(shù)據(jù)) 
  26. # 正常插入 
  27. mysql> insert into tb_text  (a,b,c) values (repeat('hello',3),repeat('hello',3),repeat('hello',3)); 
  28. Query OK, 1 row affected (0.01 sec) 
  29. # 插入英文字符超標(biāo) 
  30. mysql> insert into tb_text  (a) values (repeat('hello',52)); 
  31. Query OK, 1 row affected, 1 warning (0.01 sec) 
  32. mysql> show warnings; 
  33. +---------+------+----------------------------------------+ 
  34. Level   | Code | Message                                | 
  35. +---------+------+----------------------------------------+ 
  36. | Warning | 1265 | Data truncated for column 'a' at row 1 | 
  37. +---------+------+----------------------------------------+ 
  38. 1 row in set (0.00 sec) 
  39. # 插入中文超標(biāo) 
  40. mysql>  insert into tb_text  (a) values (repeat('你好',100)); 
  41. Query OK, 1 row affected, 1 warning (0.02 sec) 
  42. mysql> show warnings; 
  43. +---------+------+----------------------------------------+ 
  44. Level   | Code | Message                                | 
  45. +---------+------+----------------------------------------+ 
  46. | Warning | 1265 | Data truncated for column 'a' at row 1 | 
  47. +---------+------+----------------------------------------+ 
  48. 1 row in set (0.00 sec) 
  49. # 查看數(shù)據(jù) 發(fā)現(xiàn)數(shù)據(jù)有所截取 tinytext 類(lèi)型最多存儲(chǔ)255字節(jié)數(shù)據(jù) 
  50. mysql> select * from tb_text; 
  51. +----+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+ 
  52. | id | a                                                                                                                                                                                                                                                               | b               | c               | 
  53. +----+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+ 
  54. |  1 | hellohellohello                                                                                                                                                                                                                                                 | hellohellohello | hellohellohello | 
  55. |  2 | hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello | NULL            | NULL            | 
  56. |  3 | 你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你                                                                                      | NULL            | NULL            | 
  57. +----+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+ 
  58. rows in set (0.00 sec) 

通過(guò)以上測(cè)試,我們注意到,text 類(lèi)型可存儲(chǔ)容量是以字節(jié)為單位而不是字符。例如 tinytext 最多存儲(chǔ) 255 個(gè)字節(jié)而不是 255 個(gè)字符,在 utf8 字符集下,一個(gè)英文字母或數(shù)字占用一個(gè)字節(jié),而一個(gè)中文漢字占用三個(gè)字節(jié)。也就是說(shuō) tinytext 最多存儲(chǔ) 255/3=85 個(gè)漢字,text 最多存儲(chǔ) 65535/3=21845 個(gè)漢字。而 varchar(M) 中的 M 指的是字符數(shù),一個(gè)英文、數(shù)字、漢字都是占用一個(gè)字符,即 tinytext 可存儲(chǔ)的大小并不比 varchar(255) 多。

總結(jié):

本篇文章介紹了 blob 及 text 字段類(lèi)型相關(guān)知識(shí)。雖然數(shù)據(jù)庫(kù)規(guī)范中一般不推薦使用 blob 及 text 類(lèi)型,但由于一些歷史遺留問(wèn)題或是某些場(chǎng)景下,還是會(huì)用到這兩類(lèi)數(shù)據(jù)類(lèi)型的。這篇文章僅當(dāng)做個(gè)記錄了,使用到的時(shí)候可以參考下。

原文鏈接:https://mp.weixin.qq.com/s/SjaCSkcjT0rcO1n41RuEcA

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久久久99精品 | 视频在线一区二区 | 国产激情在线 | 精品久久久久久久久久久久久久 | 欧美久 | 欧美激情亚洲 | 国产99在线 | 成人免费一区二区三区视频软件 | 亚洲免费视频一区二区 | jlzzjlzz亚洲日本少妇 | 久久久91精品国产一区二区三区 | 亚洲影视一区 | 精品免费在线 | 青青草精品 | 精品国产一区二区三区在线观看 | 91精品国产色综合久久不卡蜜臀 | 国产在线观看一区二区三区 | 91在线精品视频观看 | 色综合天天综合网国产成人网 | 日本不卡视频 | 涩涩涩久久久成人精品 | 日韩一二区 | 一级毛片久久久 | 国产精品久久久久久模特 | 中文字幕 亚洲一区 | 在线日韩一区二区 | 色av综合 | 超碰九七在线 | 一区二区在线视频 | 欧美黄色网页 | 亚洲成人精品一区 | 女人色网| wwwav在线播放 | 欧美久久精品 | 国产精品美女久久久久久久久久久 | 免费av在线 | 成人午夜在线观看 | 免费一二区 | 亚洲精品一区二区三区四区高清 | 久久久久高清 | 国产成人片 |