国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.

這篇具有很好參考價值的文章主要介紹了Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

問題描述

新建表或者修改表varchar字段長度的時候,出現(xiàn)這個錯誤

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.
大概意思就是行大小太大,不能超過65535
長度改為21842就正常了,這是為什么?


分析

最終我們執(zhí)行正確的SQL語句

CREATE TABLE `all_type_forlan` (
  `id` int(20) NOT NULL COMMENT 'id',
  `base_info` varchar(21842) DEFAULT NULL COMMENT '基本詳細(xì)',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

這里的21842長度是怎么來的?
首先它是什么意思?表示21842字符

首先來了解幾個規(guī)則,對我們的字符數(shù)有影響的規(guī)則

1、MySQL規(guī)則

編碼規(guī)則

不同字符集下,占用空間不一樣
gbk編碼中,1個字符占用2個字節(jié)
utf8編碼(默認(rèn))中,1個字符占用3個字節(jié)
utf8mb4編碼中,1個字符占用4個字節(jié)

存儲規(guī)則

varchar除了存儲字符,還需要額外的空間來存儲長度和是否為NULL,分別占用1-2字節(jié)和1字節(jié)

行大小限制

MySQL 表的內(nèi)部表示具有 65,535 字節(jié)的最大行大小限制,即使存儲引擎能夠支持更大的行。 BLOB 和 TEXT列僅對行大小限制貢獻(xiàn) 9 到 12 個字節(jié),因?yàn)樗鼈兊膬?nèi)容與行的其余部分分開存儲

2、驗(yàn)證

根據(jù)行最大65535字節(jié),我們選擇utf8編碼,那我們最多可以設(shè)置的字符數(shù)為65535/3=21845
Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.
還是報錯了,因?yàn)槲覀冞€需要減去額外的存儲(長度和是否為NULL),65535-3=65532/2=21844,設(shè)置成21844就成功了

驗(yàn)證NULL占用1個字節(jié)

65535-1-3=65531/3=21,843.66666666667,向下取整,最多只能21843,所以報錯啦,看下圖
說明:tinyint占用1個字節(jié)、varchar的長度和是否為NULL占用3個字節(jié)
Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.
我們把varchar字段設(shè)為不是null,此時21844可以設(shè)置成功
說明:65535-1-2=65532/3=21844

3、結(jié)論

所以,至此,我們就知道為什么21842才可以了
計算規(guī)則=(65535-4-2-1)/3=21,842.66666666667,向下取整,就是21842
說明:int占用4個字節(jié),varchar的長度和是否為NULL占用3個字節(jié),使用了utf8編碼,1個字符占用3個字節(jié)


解決方案

如果長度需要加長,將字段類型改為TEXT或BLOB
如果只是想設(shè)置一個最大值,那可以根據(jù)計算規(guī)則進(jìn)行調(diào)整


拓展

為什么我們經(jīng)常使用varchar(255),不使用varchar(256)?

首先我們使用的varchar,除了存儲字符內(nèi)容,還需要額外存儲長度和是否為NULL

因?yàn)関archar類型的字段長度在超過255后,需要2個字節(jié)來存儲長度,因?yàn)?個字節(jié)=8位,可以表示的長度為255,2個字節(jié)=16位,可以表示的長度為65535
所以varchar(256)會比varchar(255)多占用1個字節(jié)來存儲長度

MySQL列數(shù)限制

MySQL 對每個表有 4096 列的硬性限制,但對于給定的表,有效最大值可能會更少,因?yàn)楸淼淖畲笮写笮∠拗屏肆械臄?shù)量

int類型的占用空間的大小范圍

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.文章來源地址http://www.zghlxwxcb.cn/news/detail-446032.html

到了這里,關(guān)于Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Data too long for column ‘xxxx‘ at row 1 解決辦法

    很簡單的啦,往下看 Data too long for column ‘xxxx’ at row 1 第一種情況就是很普遍的,xxx字段長度不夠 就是用Mybatis映射文件xml,字段匹配順序錯誤即 原來很短的一個列,插入了很長的數(shù)據(jù) 就是數(shù)據(jù)庫字符集的問題 重新設(shè)置字符串長度 仔細(xì)看一眼sql,就能排錯 PS: 前端提出來

    2024年02月07日
    瀏覽(24)
  • The database operation was expected to affect 1 row(s), but actually affected 0 row(s); 解決樂觀并發(fā)

    EF Core 實(shí)現(xiàn) 樂觀并發(fā) ,假定并發(fā)沖突相對較少。 與 悲觀 方法(即先鎖定數(shù)據(jù),然后才繼續(xù)修改數(shù)據(jù))不同,樂觀并發(fā)不需要鎖定,而是安排數(shù)據(jù)修改在保存時失?。ㄈ绻麛?shù)據(jù)自查詢后已更改)。 此并發(fā)故障將報告給應(yīng)用程序,應(yīng)用程序可能會通過對新數(shù)據(jù)重試整個操作來

    2024年02月11日
    瀏覽(23)
  • 【異?!縏he field file exceeds its maximum permitted size of 1048576 bytes.

    【異?!縏he field file exceeds its maximum permitted size of 1048576 bytes.

    本項(xiàng)目是個Springboot 項(xiàng)目,功能是要做一個文件上傳,在測試時發(fā)現(xiàn)報錯,上傳的是一個 word 文件,大小是 1.25MB,報錯內(nèi)容如下: Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes. 詳細(xì)報錯內(nèi)容如下圖

    2024年03月15日
    瀏覽(14)
  • 解決Data too long for column ‘xxx‘ at row 1問題以及深入理解mysql的字符串?dāng)?shù)據(jù)類型(char,varchar,enum,text,longtext...)

    今天在測試環(huán)境新增數(shù)據(jù)時,報出如是錯誤: Data too long for column \\\'apply_service_type\\\' at row 1 。 為了復(fù)現(xiàn)這個問題,我特地在本地數(shù)據(jù)庫中增加如下 test 表:

    2023年04月17日
    瀏覽(25)
  • git上傳報錯:Object too large, rejecting the pack

    git上傳報錯:Object too large, rejecting the pack

    在gerrit設(shè)置了最大不能上傳超過600M的文件,今天開發(fā)遇到推送問題: 結(jié)果到本地怎么也找不到大文件。 后來只能按commit排查,用如下命令排查到了: 解決方法,將大文件去掉:(commitid為大文件所在commit)

    2024年02月22日
    瀏覽(24)
  • 【Pytorch警告】Using a target size (torch.Size([])) that is different to the input size (torch.Size([1])

    我代碼中造成警告的語句是: 原因 :mse_loss損失函數(shù)的兩個輸入Tensor的shape不一致。經(jīng)過reshape或者一些矩陣運(yùn)算以后使得shape一致,不再出現(xiàn)警告了。

    2024年02月11日
    瀏覽(32)
  • Git 傳輸大文件,出現(xiàn):error: Object too large (89,567,972 bytes), rejecting the pack. Max o

    一,本文介紹一下關(guān)于使用Git 向云端上傳大文件情況下,push時會報如下錯誤: 在出現(xiàn)上述問題后,怎樣把已經(jīng)add和commit的大文件刪除,從而能重新上傳的解決辦法如下。 1.使用git log,查看傳輸日志 2.111是本次上傳大文件失敗日志記錄,222為上次傳輸成功日志記錄,使用gi

    2024年03月17日
    瀏覽(25)
  • Automated clinical coding using off-the-shelf large language models

    Automated clinical coding using off-the-shelf large language models

    Tags: Diagnosis Prediction, LLM Authors: Alison Q. O’Neil, Antanas Kascenas, Joseph S. Boyle, Maria Liakata, Pat Lok Created Date: January 18, 2024 3:57 PM Status: Reading organization: Anglia Ruskin University, Canon Medical Research Europe, Queen Mary University of London, The Alan Turing Institute, University of Edinburgh, University of Warwick publishe

    2024年01月22日
    瀏覽(16)
  • 【異?!縁ailed to load resource: the server responded with a status of 413 (Request Entity Too Large)

    【異?!縁ailed to load resource: the server responded with a status of 413 (Request Entity Too Large)

    經(jīng)過查詢,是因?yàn)閼?yīng)用服務(wù)器使用了Nginx做代理,而在Nginx這一層限制了上傳文件的大小,因此需要修改Nginx配置 在location 下面增加 client_max_body_size 100M; 配置項(xiàng),重啟Nginx文件上傳成功.

    2024年02月15日
    瀏覽(13)
  • 【Flink】Table\Sql API 筆記:Row和RowData

    ?根據(jù)個人理解整理,大佬們有更好的想法可以評論 首先,Row是一種固定長度、可識別空值的復(fù)合類型,使用確定的字段順序存儲多個值。 無論字段的類型如何,每個字段都可以為空。 無法自動推斷行字段的類型; 因此,無論何時生成一行,都需要提供類型信息。 Row 的主

    2024年02月14日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包