MySQL報(bào)錯(cuò)1118,數(shù)據(jù)類型長度過長問題及解決
MySQL報(bào)錯(cuò)1118,數(shù)據(jù)類型長度過長
MySQL是世界上最流行的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。
MySQL提供了許多功能,從簡單的數(shù)據(jù)查詢到復(fù)雜的數(shù)據(jù)操作和管理。
在MySQL的使用過程中,我們時(shí)常會(huì)遇到各種問題,其中一個(gè)比較常見的問題是報(bào)錯(cuò)1118。
接下來,我們將講解MySQL報(bào)1118錯(cuò)誤的原因和解決方法。
1118錯(cuò)誤通常會(huì)在創(chuàng)建表的時(shí)候出現(xiàn),
錯(cuò)誤提示為
“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”。
這個(gè)錯(cuò)誤的意思是,在創(chuàng)建表時(shí),某些列的長度相加超過了MySQL所允許的最大行長度65535。在計(jì)算行長度時(shí),除去BLOB類型的列的長度,還要加上行存儲(chǔ)的開銷。
出現(xiàn)這個(gè)錯(cuò)誤的原因是我們創(chuàng)建的表結(jié)構(gòu)中包含了太多的長文本類型(如VARCHAR、TEXT),而沒有足夠的空間來存放其它列。
對(duì)于VARCHAR類型的列,MySQL需要為其分配額外的空間,以適應(yīng)其變化的字符串長度。所以,當(dāng)我們?cè)诒碇惺褂么罅縑ARCHAR類型的長文本時(shí),會(huì)導(dǎo)致出現(xiàn)1118錯(cuò)誤。
解決這個(gè)問題
我們可以采用兩種方法:
一種是使用TEXT或BLOB類型的列替換VARCHAR類型的列。
由于TEXT和BLOB類型的列不需要額外的存儲(chǔ)空間,所以可以避免出現(xiàn)1118錯(cuò)誤。
但是需要注意的是,這些列不支持索引、排序、或者通配符查詢。
/** *創(chuàng)建表的時(shí)候,大概有170+的字段大部分的字段varchar(255)的長度, 之前是以為字段名太長的文字,然后到網(wǎng)上查找把varchar替換成text類型,也沒有嘗試, 我直接刪除一般的字段,表創(chuàng)建成功, 因?yàn)镸YSQL所允許的最大長度為65535這個(gè)只是虛擬的長度但是實(shí)際長度完全沒有這么長, 我估計(jì)也只有5萬多長度 因?yàn)樽侄味己苤匾?,所以我把所有?55長度全部更改成100長度最終創(chuàng)建表成功?。?! */
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL與PHP的基礎(chǔ)與應(yīng)用專題之增刪改查
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,本系列將帶你掌握php與mysql的基礎(chǔ)應(yīng)用,本篇從數(shù)據(jù)庫的增刪改查開始2022-02-02mysql查詢過去24小時(shí)內(nèi)每小時(shí)數(shù)據(jù)量的方法(精確到分鐘)
我們經(jīng)常遇到類似這樣的需求,查詢最近N秒、N分鐘、N小時(shí)的數(shù)據(jù)及N天的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于mysql查詢過去24小時(shí)內(nèi)每小時(shí)數(shù)據(jù)量(精確到分鐘)的相關(guān)資料,需要的朋友可以參考下2023-03-03SQL中l(wèi)imit函數(shù)語法與用法(MYSQL獲取限制某行數(shù)據(jù))
limit是MySql的內(nèi)置函數(shù),一般用于查詢表中記錄的條數(shù),作用是用于限制查詢條數(shù),下面這篇文章主要給大家介紹了關(guān)于SQL中l(wèi)imit函數(shù)語法與用法的相關(guān)資料,詳細(xì)講了MYSQL獲取限制某行數(shù)據(jù)的方法,需要的朋友可以參考下2022-08-08MySQL修改默認(rèn)存儲(chǔ)引擎的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狹ySQL修改默認(rèn)存儲(chǔ)引擎的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03MySQL優(yōu)化之表結(jié)構(gòu)優(yōu)化的5大建議(數(shù)據(jù)類型選擇講的很好)
很多人都將 數(shù)據(jù)庫設(shè)計(jì)范式 作為數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)“圣經(jīng)”,認(rèn)為只要按照這個(gè)范式需求設(shè)計(jì),就能讓設(shè)計(jì)出來的表結(jié)構(gòu)足夠優(yōu)化,既能保證性能優(yōu)異同時(shí)還能滿足擴(kuò)展性要求2014-03-03