MySql中的longtext字段的返回問題及解決
MySql中l(wèi)ongtext字段的返回
最近開發(fā)中用到了longtext這種字段。在mysql中該字段的最大長度為4G
如下圖所示


開發(fā)中遇到的一個問題就是。例如有個article表,然后我們的頁面要將數(shù)據(jù)以列表的形式展示到前端(只顯示幾個字段,如作者,標(biāo)題等等,例如放到table中顯示多條記錄),但是是將該表中的所有信息都查出來,然后當(dāng)用戶點擊某條記錄的時候,會跳到詳情頁,在顯示出詳細(xì)的信息。
這樣當(dāng)數(shù)據(jù)量比較多的時候,或者文本的內(nèi)容比較大的時候,就出現(xiàn)問題了。
打開頁面,頁面就會一直加載,數(shù)據(jù)量越大,加載時間就越長,然后才會顯示數(shù)據(jù)列表。這會嚴(yán)重影響使用效果。
解決方法
當(dāng)然是sql語句的問題了,當(dāng)像上面這樣查詢整個列表的時候,可以不查詢longtext這個字段,將其他的字段查詢出來。然后當(dāng)用戶點擊某條數(shù)據(jù)時,再根據(jù)該條數(shù)據(jù)的id到數(shù)據(jù)庫去單查這條數(shù)據(jù),這時再將longtext給查出來即可。
說到這里,還要說一種情況,就是有時候從數(shù)據(jù)庫中查到的數(shù)據(jù)封裝到實體類中,怎么也取不到某個字段的值,就是null。這個時候要看看sql語句,返回的結(jié)果集中是否將該字段封裝并且映射到該類對應(yīng)的字段上。
一般情況下都是結(jié)果集中沒有封裝該字段的原因。
Mysql中Text字段的范圍
text:存儲可變長度的非Unicode數(shù)據(jù),最大長度為2^31-1個字符。
text列不能有默認(rèn)值,存儲或檢索過程中,不存在大小寫轉(zhuǎn)換,后面如果指定長度,不會報錯誤,但是這個長度是不起作用的,意思就是你插入數(shù)據(jù)的時候,超過你指定的長度還是可以正常插入。
mysql中text 最大長度為65,535(2的16次方–1)字符的TEXT列。
如果你覺得text長度不夠,可以選擇
MEDIUMTEXT最大長度為16,777,215。LONGTEXT最大長度為4,294,967,295Text主要是用來存放非二進(jìn)制的文本,如論壇帖子,題目,或者百度知道的問題和回答之類。
需要弄清楚的是text 和 char varchar blob這幾種類型的區(qū)別。
mysql 修改 text字段長度_mysql的text字段長度?mysql數(shù)據(jù)庫中text字段長度不夠的問題…
類型是可變長度的字符串,最多65535個字符;
可以把字段類型改成MEDIUMTEXT(最多存放16777215個字符)或者LONGTEXT(最多存放4294967295個字符).
MySQL supports 4 TEXT field types (TINYTEXT, TEXT, MEDIUMTEXT and LONGTEXT) and this post looks at the maximum length of each of these field types.
MyISAM tables in MySQL have a maximum size of a row of 65,535 bytes, so all the data in a row must fit within that limit. However, the TEXT types are stored outside the table itself and only contribute 9 to 12 bytes towards that limit. (For more information about this refer to the MySQL Manual - Data Storage Requirements chapter). TEXT data types are also able to store much more data than VARCHAR and CHAR text types so TEXT types are what you need to use when storing web page or similar content in a database. The maximum amount of data that can be stored in each data type is as follows: TINYTEXT256 bytes
TEXT65,535 bytes~64kb
MEDIUMTEXT 16,777,215 bytes~16MB
LONGTEXT4,294,967,295 bytes~4GB
In most circumstances the TEXT type is probably sufficient, but if you are coding a content management system it’s probably best to use the MEDIUMTEXT type for longer pages to ensure there are no issues with data size limits.
漢字在utf8mb4中占用幾個字符
答:3個
MySQL官方手冊中對于utf8mb4的解釋是

現(xiàn)有數(shù)據(jù)庫版本默認(rèn)的utf8都為utf8mb3,注意其中所說的"相同的長度"。
所以在utf8mb4下,英文占用1個字節(jié),一般漢字占3個字節(jié),emoji表情占4個字節(jié)。
關(guān)于代碼插入emoji表情報錯,請檢查 表編碼 和 數(shù)據(jù)庫連接 編碼是否同時為utf8mb4。
結(jié)論:數(shù)據(jù)庫和表都設(shè)置為utf8mb4。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- mysql中text,longtext,mediumtext區(qū)別小結(jié)
- MySQL優(yōu)化之大字段longtext、text所生產(chǎn)的問題
- MySQL中字段類型為longtext的值導(dǎo)出后顯示二進(jìn)制串方式
- Mysql LONGTEXT 類型存儲大文件(二進(jìn)制也可以) (修改+調(diào)試+整理)
- Mysql的longblob字段插入數(shù)據(jù)問題解決
- php中將圖片gif,jpg或mysql longblob或blob字段值轉(zhuǎn)換成16進(jìn)制字符串
- 深入解析MySQL中的longtext與longblob及應(yīng)用場景
相關(guān)文章
mysql5.6及以下版本如何查詢數(shù)據(jù)庫里的json
MySQL里面保存數(shù)據(jù)有時候會把一些雜亂且不常用的時候丟進(jìn)一個json字段里面,那么如何查詢數(shù)據(jù)庫里的json呢以及mysql存儲json注意那些格式呢?接下來通過本文給大家詳細(xì)介紹,需要的朋友參考下2017-03-03
MySQL性能參數(shù)詳解之Skip-External-Locking參數(shù)介紹
MySQL的配置文件my.cnf中默認(rèn)存在一行skip-external-locking的參數(shù),即跳過外部鎖定。根據(jù)MySQL開發(fā)網(wǎng)站的官方解釋,External-locking用于多進(jìn)程條件下為MyISAM數(shù)據(jù)表進(jìn)行鎖定2016-05-05
MySQL服務(wù)器默認(rèn)安裝之后調(diào)節(jié)性能的方法
在面試MySQL DBA或者那些打算做MySQL性能優(yōu)化的人時,我最喜歡問題是:MySQL服務(wù)器按照默認(rèn)設(shè)置安裝完之后,應(yīng)該做哪些方面的調(diào)節(jié)呢?2011-05-05
MySQL日期格式化yyyy-mm-dd詳解(DATE_FORMAT()函數(shù))
MySQL提供了很多功能強大、方便易用的函數(shù),在進(jìn)行數(shù)據(jù)庫管理以及數(shù)據(jù)的查詢和操作時,幫助我們提高對數(shù)據(jù)庫的管理效率,下面這篇文章主要給大家介紹了關(guān)于MySQL日期格式化yyyy-mm-dd(DATE_FORMAT()函數(shù))的相關(guān)資料,需要的朋友可以參考下2023-01-01
mysql 有關(guān)“InnoDB Error ib_logfile0 of different size”錯誤
mysql 有關(guān)“InnoDB Error ib_logfile0 of different size”錯誤的解決方法,需要的朋友可以參考下。2011-06-06
安裝使用Percona XtraBackup來備份恢復(fù)MySQL的教程
這篇文章主要介紹了安裝使用Percona XtraBackup來備份恢復(fù)MySQL的教程,文中的示例環(huán)境基于CentOS系統(tǒng),需要的朋友可以參考下2015-12-12
MySQL查詢重復(fù)記錄和刪除重復(fù)記錄的操作方法
在MySQL數(shù)據(jù)庫中,有時候會出現(xiàn)重復(fù)記錄的情況,這可能會導(dǎo)致數(shù)據(jù)不準(zhǔn)確或者不符合業(yè)務(wù)需求,為了解決這個問題,我們可以使用查詢語句來找出重復(fù)記錄,并使用刪除語句來刪除這些重復(fù)記錄,本文給大家介紹了兩種操作方法,需要的朋友可以參考下2024-12-12

