知識筆記(五十四)———mysql比較varchar值大小_Mysql varchar大小長度問題

1、限制規則

字段的限制在字段定義的時候有以下規則:

a) ?存儲限制

varchar 字段是將實際內容單獨存儲在聚簇索引之外,內容開頭用1到2個字節表示實際長度(長度超過255時需要2個字節),因此最大長度不能超過65535。

b) 編碼長度限制

字符類型若為gbk,每個字符最多占2個字節,最大長度不能超過32766;

字符類型若為utf8,每個字符最多占3個字節,最大長度不能超過21845。

若定義的時候超過上述限制,則varchar字段會被強行轉為text類型,并產生warning。

c) ?行長度限制

導致實際應用中varchar長度限制的是一個行定義的長度。 MySQL要求一個行的定義長度不能超過65535。若定義的表長度超過這個值,則提示

ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。

2、計算例子

舉兩個例說明一下實際長度的計算。

a) ?若一個表只有一個varchar類型,如定義為

create table t4(c varchar(N)) charset=gbk;

則此處N的最大值為(65535-1-2)/2= 32766。

減1的原因是實際行存儲從第二個字節開始’;

減2的原因是varchar頭部的2個字節表示長度;

除2的原因是字符編碼是gbk。

b) ?若一個表定義為

create table t4(c int, c2 char(30), c3 varchar(N)) charset=utf8;

則此處N的最大值為 (65535-1-2-4-30*3)/3=21812

減1和減2與上例相同;

減4的原因是int類型的c占4個字節;

減30*3的原因是char(30)占用90個字節,編碼是utf8。

如果被 varchar 超過上述的 b 規則,被強轉成 text 類型,則每個字段占用定義長度為 11 字節,當然這已經不是“ varchar ”了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214982.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214982.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214982.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

低功耗模式的通用 MCU ACM32F0X0 系列,具有高整合度、高抗干擾、 高可靠性的特點

ACM32F0X0 系列是一款支持多種低功耗模式的通用 MCU。集成 12 位 1.6 Msps 高精度 ADC 以及比 較器、運放、觸控按鍵控制器、段式 LCD 控制器,內置高性能定時器、多路 UART、LPUART、SPI、I2C 等豐富的通訊外設,內建 AES、TRNG 等信息安全模塊&#xff0…

kubeadm搭建單master多node的k8s集群--小白文,圖文教程

參考文獻 K8S基礎知識與集群搭建 kubeadm搭建單master多node的k8s集群—主要參考這個博客,但是有坑,故貼出我自己的過程,坑會少很多 注意: 集群配置是:一臺master:zabbixagent-k8smaster,兩臺…

C++類和對象——(10)綜合示例

一、示例對象數組&#xff1a; #include<iostream> using namespace std;class Point{private:int x,y;public:Point(int px0,int py0){xpx;ypy;}void init(int px0,int py0){xpx;ypy;}void print(){cout<<"("<<x<<","<<y…

FFmpeg的AVInputFormat

文章目錄 結構體定義操作函數支持的AVOutputFormat 通過上面的分析&#xff0c;基本可以看到ffmpeg的套路了&#xff0c;首先一個context上下文&#xff0c;上下文里面一個priv_data 指針&#xff0c;然后再插件結構體中有一個priv_data_size&#xff0c;然后回調函數。 結構體…

JVM-GC調優-字節碼篇-01

筆記來源&#xff1a;JVM 注意&#xff1a;實在想學習可以看一下&#xff0c;讓自己更加了解JVM&#xff0c;看起來可能會枯燥。 JVM-概述 1、你的問題 1.1你被JVM傷害過嗎&#xff1f; 你是否也遇到過這些問題&#xff1f; 運行著的線上系統突然卡死&#xff0c;系統無法訪…

Flink SQL: 高效解析 Kafka 數據并存儲為 Parquet 至 HDFS

目錄 總體流程介紹 1. 從 Kafka 讀取數據 2. 使用 UDF 進行數據解析 3. 將

HTML中如何設置音頻和視頻?

文章目錄 &#x1f50a;嵌入音頻&#x1f39e;?嵌入視頻 &#x1f50a;嵌入音頻 HTML 元素用于在文檔中嵌入音頻內容。 元素可以包含一個或多個音頻資源&#xff0c; 這些音頻資源可以使用 src 屬性或者 元素來進行描述&#xff1a;瀏覽器將會選擇最合適的一個來使用。也可以使…

Centos7云服務器上安裝cobalt_strike_4.7。附cobalt_strike_4.7安裝包

環境這里是阿里的一臺Centos7系統。 開始安裝之前首先要確保自己安裝了java11及以上環境。 安裝java11步驟&#xff1a; sudo yum update sudo yum install java-11-openjdk-devel把服務器端&#xff08;CS工具分服務器端和客戶端&#xff09;的CS安裝到服務器上后給目錄下的…

Mongoose 對象文檔模型庫

一、介紹 Mongoose是一個對象文檔模型庫&#xff0c;官網&#xff1a;http://www.mongoosejs.net/ 二、作用 方便使用代碼操作Mongodb數據庫 三、使用流程 //1. 安裝 mongoose //2. 導入 mongoose const mongoose require(mongoose); //3. 連接數據庫 mongoose.connect(m…

某省資源交易中心 (js逆向)

該文章只是用于逆向學習&#xff0c;不得以商用或者是破壞他人利益的目的進行使用。如有侵權請聯系作者。 網站鏈接&#xff1a; bse64 aHR0cHM6Ly9nZ3p5ZncuZnVqaWFuLmdvdi5jbi9idXNpbmVzcy9saXN0Lw 分析環節 進入網站 進行翻頁請求時我們會發現改請求時ajax請求。 這里&…

hive-窗口函數

1 窗口函數語法 分析函數/專用窗口函數 over(partition by 列名 order by 列名 rows between 開始位置 and 結束位置) 常用的分析函數 常用的分析函數&#xff1a;sum()、max()、min()、avg()、count() 常用的專用窗口函數 專用窗口函數&#xff1a;row_number()、rank()、dens…

【簡易版】Linux下Protobuf 實現網絡版通訊錄--C++

一、介紹 該項目的主要目的是用于熟悉protobuf的使用&#xff0c;體驗數據在網絡中序列化反序列化的形式&#xff0c;并非一個完整的項目。 該通訊錄只實現了增加聯系人的功能。服務器端接收到請求后會將聯系人的信息打印。 二、環境搭建 使用Httplib庫&#xff0c;可以快速…

jsp文件引用的css修改后刷新不生效問題

問題 在對 JavaWeb 項目修改的過程中&#xff0c;發現修改了 jsp 文件引入的 css 文件的代碼后頁面的樣式沒有更新的問題。 原因 導致這個問題的原因可能是因為瀏覽器緩存的問題。 解決方法 下面介紹兩種解決方法&#xff0c;供大家參考&#xff1a; 1、給 link 標簽的 c…

TrustZone之安全虛擬化

在Armv7-A首次引入虛擬化時,它僅在非安全狀態中添加。在Armv8.3之前,Armv8也是如此,如下圖所示: 如前所述在切換安全狀態時,EL3用于托管固件和安全監視器。安全EL0/1托管受信任的執行環境(TEE),由受信任的服務和內核組成。 在安全狀態下,沒有對多個虛擬機的需…

Java基礎——什么是main方法

main方法是Java虛擬機調用的入口&#xff0c;該方法的權限必須是public&#xff0c;Java虛擬機在執行main方法時不必創建對象&#xff0c;所以該方法是static修飾&#xff0c;接收一個String類型的數組參數&#xff0c;數組保存執行Java命令時傳遞給所運行的類的參數&#xff0…

基于微信小程序和Spring、SpringMVC、MyBatis的汽車租賃管理系統

文章目錄 項目介紹主要功能截圖:部分代碼展示設計總結項目獲取方式?? 作者主頁:超級無敵暴龍戰士塔塔開 ?? 簡介:Java領域優質創作者??、 簡歷模板、學習資料、面試題庫【關注我,都給你】 ??文末獲取源碼聯系?? 項目介紹 基于微信小程序和Spring、SpringMVC、My…

Kafka生產問題總結及性能優化實踐

1、消息丟失情況 消息發送端&#xff1a; &#xff08;1&#xff09;acks0&#xff1a; 表示producer不需要等待任何broker確認收到消息的回復&#xff0c;就可以繼續發送下一條消息。性能最高&#xff0c;但是最容易丟消息。大數據統計報表場景&#xff0c;對性能要求很高&am…

JavaCV之rtmp推流(FLV和M3U8)

JavaCV與FFmpeg FFmpeg是一款開源的多媒體處理工具集&#xff0c;它包含了一系列用于處理音頻、視頻、字幕等多媒體數據的庫和工具。 JavaCV集成了FFmpeg庫&#xff0c;使得Java開發者可以使用FFmpeg的功能&#xff0c;比如視頻解碼、編碼、格式轉換等。 除了FFmpeg&#xff0…

LeetCode力扣每日一題(Java):35、搜索插入位置

一、題目 二、解題思路 1、我的思路&#xff08;又稱&#xff1a;論API的重要性&#xff09; 讀完題目之后&#xff0c;我心想這題目怎么看著這么眼熟&#xff1f;好像我之前學過的一個API呀&#xff01; 于是我回去翻了翻我之前寫的博客&#xff1a;小白備戰藍橋杯&#xf…

通用的AGI 安全風險

傳統安全風險 平臺基礎設施安全風險 模型與數據層安全風險 應用層安全風險 平臺基礎設施安全風險 &#xff08;1&#xff09;物理攻擊&#xff1a;機房管控不到位 &#xff08;2&#xff09;網絡攻擊 &#xff08;3&#xff09;計算環境&#xff1a;自身安全漏洞&#xf…