更改MYSQL 單字段存儲(chǔ)最大空間

成都創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元汨羅做網(wǎng)站,已為上家服務(wù),為汨羅各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
具體的配置是my.ini。
將max_allowed_packet = 16M 拷貝到my.ini中的mysqld分類下,重啟服務(wù),就將更改MYSQL 單字段存儲(chǔ)最大空間改為16M啦
MYSQL 默認(rèn)單字段存儲(chǔ)最大空間為1M.
朋友,據(jù)我所知varchar字段類型已經(jīng)夠用了,char類型其長度是固定的,在創(chuàng)建表時(shí)就指定了,
但是varchar類型的長度是可變的,在建表的時(shí)候就制定了最大長度,其最大值可以取:0~65535之間的任意值(長度可以再0到最大值之間) 而且在這個(gè)最大范圍內(nèi),使用多少則分配多大的空間,例如varchar(100),并不是每條記錄都要占用100個(gè)字節(jié)哦!! 最后強(qiáng)調(diào):varchar類型實(shí)際占用的空間為字符串的實(shí)際長度加1 如varchar(10):字段 ‘123’,他占的內(nèi)存字節(jié)是4(3+1),而char(10)則占用了10個(gè)字節(jié)。 全手工,希望朋友采納
對(duì)于大篇幅的文本字段,一般推薦用text和blob數(shù)據(jù)類型定義字段, 有時(shí)候不必在于一點(diǎn)空間的消耗,只要我們?cè)跀?shù)據(jù)庫優(yōu)化做好就夠了
1.
blob是二進(jìn)制大對(duì)象,可以容納可變量數(shù)量的數(shù)據(jù),其中blob分為4中類型:TINYBLOB,BLOB,mediumblob和LongBlob,他們?nèi)菁{的長度是不同的.
Text同樣也分為四種類型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT
2.
blob被視為二進(jìn)制字符串,Text被視為非二進(jìn)制字符串;
blob列沒有字符集,并且排序和比較基于列值字節(jié)的數(shù)值值。
TEXT列有一個(gè)字符集,并且根據(jù)字符集的校對(duì)規(guī)則對(duì)值進(jìn)行排序和比較。
在MySQL TEXT或BLOB列的存儲(chǔ)或檢索過程中,不存在大小寫轉(zhuǎn)換,當(dāng)未運(yùn)行在嚴(yán)格模式時(shí),如果你為BLOB或TEXT列分配一個(gè)超過該列類型的最大長度的值值,值被截取以保證適合。如果截掉的字符不是空格,將會(huì)產(chǎn)生一條警告。
使用嚴(yán)格SQL模式,會(huì)產(chǎn)生錯(cuò)誤,并且值將被拒絕而不是截取并給出警告.在大多數(shù)方面,可以將BLOB列視為能夠足夠大的VARBINARY列。同樣,可以將TEXT列視為VARCHAR列。
3.
BLOB和TEXT在以下幾個(gè)方面不同于VARBINARY和VARCHAR.
BLOB和TEXT列不能有默認(rèn)值.
當(dāng)保存或檢索BLOB和TEXT列的值時(shí)不刪除尾部空格。(這與VARBINARY和VARCHAR列相同).
對(duì)于BLOB和TEXT列的索引,必須指定索引前綴的長度。對(duì)于CHAR和VARCHAR,前綴長度是可選的.
LONG和LONG VARCHAR對(duì)應(yīng)MEDIUMTEXT數(shù)據(jù)類型。這是為了保證兼容性。如果TEXT列類型使用BINARY屬性,將為列分配列字符集的二元校對(duì)規(guī)則.
MySQL連接程序/ODBC將BLOB值定義為LONGVARBINARY,將MySQL TEXT值定義為LONGVARCHAR。由于BLOB和TEXT值可能會(huì)非常長,使用它們時(shí)可能遇到一些約束.
BLOB或TEXT對(duì)象的最大大小由其類型確定,但在客戶端和服務(wù)器之間實(shí)際可以傳遞的最大值由可用內(nèi)存數(shù)量和通信緩存區(qū)大小確定。你可以通過更改
max_allowed_packet變量的值更改消息緩存區(qū)的大小,但必須同時(shí)修改服務(wù)器和客戶端程序。例如,可以使用
MySQL和MySQLdump來更改客戶端的max_allowed_packet值.
1.mysql在操作數(shù)據(jù)的時(shí)候,以page為單位
??不管是更新,插入,刪除一行數(shù)據(jù),都需要將那行數(shù)據(jù)所在的page讀到內(nèi)存中,然后在進(jìn)行操作,這樣就存在一個(gè)命中率的問題,如果一個(gè)page中能夠相對(duì)的存放足夠多的行,那么命中率就會(huì)相對(duì)高一些,性能就會(huì)有提升
2.innodb的page大小默認(rèn)為16kb
??innodb存儲(chǔ)引擎表為索引組織表,樹底層的葉子節(jié)點(diǎn)為一雙向鏈表,因此每個(gè)頁中至少應(yīng)該有兩行記錄,這就決定了innodb在存儲(chǔ)一行數(shù)據(jù)的時(shí)候不能夠超過8k,但事實(shí)上應(yīng)該更小,有一些InnoDB內(nèi)部數(shù)據(jù)結(jié)構(gòu)要存儲(chǔ)以及預(yù)留操作空間,
3.blob,text大字段
??innodb只會(huì)存放前768字節(jié)在數(shù)據(jù)頁中,而剩余的數(shù)據(jù)則會(huì)存儲(chǔ)在溢出段中(發(fā)生溢出情況的時(shí)候適用),最大768字節(jié)的作用是便于創(chuàng)建前綴索引/prefix index,其余更多的內(nèi)容存儲(chǔ)在額外的page里,哪怕只是多了一個(gè)字節(jié)。因此,所有列長度越短越好
4.擴(kuò)展存儲(chǔ)禁用了自適應(yīng)哈希
??因?yàn)樾枰暾谋容^列的整個(gè)長度,才能發(fā)現(xiàn)是不是正確的數(shù)據(jù)(哈希幫助InnoDB非常快速的找到“猜測的位置”,但是必須檢查“猜測的位置”是不是正確)。因?yàn)樽赃m應(yīng)哈希是完全的內(nèi)存結(jié)構(gòu),并且直接指向Buffer Pool中訪問“最”頻繁的頁面,但對(duì)于擴(kuò)展存儲(chǔ)空間卻無法使用Adaptive Hash
變長大字段類型包括blob,text,varchar,其中varchar列值長度大于某數(shù)N時(shí)也會(huì)存溢出頁,在latin1字符集下N值可以這樣計(jì)算:innodb的塊大小默認(rèn)為16kb,由于innodb存儲(chǔ)引擎表為索引組織表,樹底層的葉子節(jié)點(diǎn)為一雙向鏈表,因此每個(gè)頁中至少應(yīng)該有兩行記錄,這就決定了innodb在存儲(chǔ)一行數(shù)據(jù)的時(shí)候不能夠超過8k,減去其它列值所占字節(jié)數(shù),約等于N。對(duì)于InnoDB,內(nèi)存是極為珍貴的,如果把768字節(jié)長度的blob都放在數(shù)據(jù)頁,雖然可以節(jié)省部分IO,但是能緩存行數(shù)就變少,也就是能緩存的索引值變少了,降低了索引效率
Mysql把每個(gè)BLOB和TEXT值當(dāng)作一個(gè)獨(dú)立的對(duì)象處理。存儲(chǔ)引擎在存儲(chǔ)時(shí)通常會(huì)做特殊處理。當(dāng)BLOB和TEXT值太大時(shí),InnoDB會(huì)使用專門的“外部”儲(chǔ)存區(qū)域來進(jìn)行存儲(chǔ),此時(shí)每個(gè)值在行內(nèi)需要1~4個(gè)字節(jié)存儲(chǔ)一個(gè)指針,然后在內(nèi)部存儲(chǔ)區(qū)域存儲(chǔ)實(shí)際的值。
Mysql不能將BLOB和TEXT列全部長度的字符串進(jìn)行索引
mysql的 io 以page為單位,因此不必要的數(shù)據(jù)(大字段)也會(huì)隨著需要操作的數(shù)據(jù)一同被讀取到內(nèi)存中來,這樣帶來的問題由于大字段會(huì)占用較大的內(nèi)存(相比其他小字段),使得內(nèi)存利用率較差,造成更多的隨機(jī)讀取。從上面的分析來看,我們已經(jīng)看到性能的瓶頸在于由于大字段存放在數(shù)據(jù)頁中,造成了內(nèi)存利用較差,帶來過多的隨機(jī)讀,那怎么來優(yōu)化掉這個(gè)大字段的影響
5.6版本以后,新增選項(xiàng) innodb_page_size 可以修改innodb的page默認(rèn)大小,但并不推薦修改這個(gè)配置
5.6版本之后mysql新增索引FULLTEXT可用來增加大文本搜索速度
網(wǎng)站欄目:mysql大字段怎么存,mysql存儲(chǔ)大字符串
轉(zhuǎn)載來于:http://chinadenli.net/article5/dsihsii.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站營銷、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)