日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL row_format引发的案例一则

發布時間:2025/3/21 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL row_format引发的案例一则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景知識:
InnoDB存儲引擎和大多數數據庫一樣,記錄是以行的形式存儲的,這意味著頁中保存著表中一行行的數據。另外MYSQL對每個頁存放的記錄數又有硬性的規定,最少2行,最多16KB/2 - 200,即7992行。
在InnoDB 1.0.X之前,InnoDB存儲引擎提供了Compact和Redundant兩種格式來存放行記錄數據。Redundant是mysql5.0版本之前的行記錄存儲方式,之后仍然支持這個格式是為了兼容之前版本的格式,5.1之后很少用到了,因為Compact的結構設計比它好得多,compact格式消耗的磁盤空間和備份耗時更小,Redundant相比之下大了一些。compact格式更適用于大多數的業務場景。

在InnoDB 1.0.X版本開始又引入了新的文件格式(file format),
以前支持Compact和Redundant格式稱為Antelope文件格式,
新引入的文件格式稱為Barracuda文件格式。
Barracuda文件格式下擁有兩種新的行記錄格式:Compressed和Dynamic,
同時,Barracuda文件格式也包括了Antelope所有的文件格式。
這樣Barracuda文件格式支持4種row_format:

Redundant、Compact、Compressed、Dynamic

而Antelope文件格式只支持2種row_format:

Redundant、Compact

參數innodb_file_format用來指定文件格式,可以通過下面的方式來查看當前所使用的InnoDB存儲引擎的文件格式:

show variables like 'innodb_file_format';

現在基本上都是Barracuda

Dynamic和Compact基本是類似的,但是它們在行溢出數據的處理上卻完全不同:

compact格式下,溢出列存儲前768字節,而dynamic格式下,溢出的列只存儲前20字節,一旦發生了行溢出, dynamic其實就存儲一個指針,數據都放在溢出頁里,dynamic代表將長字段(發生行溢出)完全off-page存儲。

Row_format 引發異常的一個案例:
前幾天生產MYSQL遇到的一個問題,在錄入數據時,整行數據完全錄不進去,報以下錯:

Cause:java.sql.SQLException: com.taobao.tddl.common.exception.TddlException:java.sql.SQLException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Row size too large (> 8126). Changing some columns to TEXT or BLOB or usingROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format,BLOB prefix of 768 bytes is stored inline.; nested exception iscom.ibatis.common.jdbc.exception.NestedSQLException:

該表是一個產品介紹詳情表,有20多個TEXT 字段,剛好碰到了一個產品,每個字段錄入的數據都很長,
而mysql 中有了個限制,一個頁(這里pagesize 是16K)必須至少存2行,也就是說每行的存儲長度必須小于等于8192,而這么多 TEXT 字段,一行肯定是存不下來,也就是會發生溢出,而即例發生溢出,每個列仍然會存儲前768字節(該表的row_formart 是compact),字段一多還是超過了8192,于是就報錯,插不進了。
最后將表的row_format 改為 dynamic 得以解決。alter table … row_format=dynamic;

所以,如果大家遇到一些表TEXT 或 VARCHAR 大字段很多,又不好拆解時,可能需要考慮下溢出后列的長度了,如果溢出后列的長度還是太大,則要看一下表的 row_format :

show table status like '%xxx%'\G

必要時需要將其實設置為 dynamic 如:

create table test(id int,name text,...... ) row_format=dynamic; 或 alter table test row_format=dynamic;

轉載于:https://blog.51cto.com/13476134/2122557

總結

以上是生活随笔為你收集整理的MySQL row_format引发的案例一则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美视频在线观看免费 | 爽天天天天天天天 | 天堂在线播放 | 亚洲欧美激情在线观看 | 淫羞阁av导航 | 男人天堂视频网站 | 日韩黄色在线视频 | 在线午夜电影 | 精品一区二区欧美 | 久久久久亚洲色欲AV无码网站 | 国产又粗又猛又爽又黄av | 女同性做受全过程动图 | 亚洲av鲁丝一区二区三区 | 韩国av中文字幕 | 伊人伊人伊人伊人 | 成人午夜剧场视频网站 | 在线观看网站黄 | 一出一进一爽一粗一大视频 | 激情综合五月天 | 综合精品视频 | 亚洲影视一区 | 亚洲一区二区精品视频 | 男女高h视频 | 国产日产亚洲系列最新 | 美国av导航 | 国产精品99一区二区三区 | 日本一区二区人妻 | 夜夜操夜夜 | 国产人妖在线观看 | 少妇做爰免费视频播放 | 亚洲自拍偷拍精品 | 亚洲成人三区 | 黄色一级免费大片 | 国产精品手机在线 | 日韩av在线播 | 公交顶臀绿裙妇女配视频 | 丰满肥臀噗嗤啊x99av | 国产视频一区二区在线观看 | 天堂а√在线中文在线 | av网在线观看 | 久久性感视频 | 色视频网 | 亚洲国产欧美自拍 | 午夜99| 不卡中文字幕在线观看 | jizz自拍| 成年男女免费视频网站 | 国产精品国产三级国产三级人妇 | 潘金莲黄色一级片 | 成人午夜sm精品久久久久久久 | 91精品视频免费在线观看 | 农村激情伦hxvideos | 久久一久久 | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 涩久久| 好爽…又高潮了毛片免费看 | 偷拍欧美另类 | 黄色动漫在线观看 | 蜜桃视频导航 | 99中文字幕| 黄色一级片免费在线观看 | 性福利视频 | 国产女主播在线播放 | 亚洲视频高清 | 色综合免费| 性生活三级视频 | 亚洲欧美自拍一区 | 福利片av| 日韩一级在线观看 | 色黄大色黄女片免费中国 | 日本精品一区二区三区四区 | 先锋av资源网 | 环太平洋3:泰坦崛起 | 狠狠干夜夜爽 | 91红桃视频 | 国产精品视频免费网站 | 中文字幕无码精品亚洲资源网久久 | 丝袜脚交免费网站xx | 不卡中文字幕av | 偷拍一区二区三区 | 成人精品免费 | 日韩欧美二区 | 欧美性猛交性大交 | 69色堂| 男人午夜剧场 | 三级第一页| 手机看片日韩日韩 | 日本a v网站 | 在线不卡国产 | 五月av| 日韩色视频在线观看 | 筱田优av| 日本一区二区三区网站 | 中文字幕日韩欧美 | 欧美 亚洲 激情 一区 | 美女av一区二区 | 久久夜色精品国产噜噜亚洲av | 精久久 | 久久国产精 |