MySql中的longtext字段的返回問題及解決
MySql中l(wèi)ongtext字段的返回
最近開發(fā)中用到了longtext這種字段。在mysql中該字段的最大長度為4G
如下圖所示
開發(fā)中遇到的一個問題就是。例如有個article表,然后我們的頁面要將數(shù)據(jù)以列表的形式展示到前端(只顯示幾個字段,如作者,標題等等,例如放到table中顯示多條記錄),但是是將該表中的所有信息都查出來,然后當用戶點擊某條記錄的時候,會跳到詳情頁,在顯示出詳細的信息。
這樣當數(shù)據(jù)量比較多的時候,或者文本的內(nèi)容比較大的時候,就出現(xiàn)問題了。
打開頁面,頁面就會一直加載,數(shù)據(jù)量越大,加載時間就越長,然后才會顯示數(shù)據(jù)列表。這會嚴重影響使用效果。
解決方法
當然是sql語句的問題了,當像上面這樣查詢整個列表的時候,可以不查詢longtext這個字段,將其他的字段查詢出來。然后當用戶點擊某條數(shù)據(jù)時,再根據(jù)該條數(shù)據(jù)的id到數(shù)據(jù)庫去單查這條數(shù)據(jù),這時再將longtext給查出來即可。
說到這里,還要說一種情況,就是有時候從數(shù)據(jù)庫中查到的數(shù)據(jù)封裝到實體類中,怎么也取不到某個字段的值,就是null。這個時候要看看sql語句,返回的結果集中是否將該字段封裝并且映射到該類對應的字段上。
一般情況下都是結果集中沒有封裝該字段的原因。
Mysql中Text字段的范圍
text:存儲可變長度的非Unicode數(shù)據(jù),最大長度為2^31-1個字符。
text列不能有默認值,存儲或檢索過程中,不存在大小寫轉(zhuǎn)換,后面如果指定長度,不會報錯誤,但是這個長度是不起作用的,意思就是你插入數(shù)據(jù)的時候,超過你指定的長度還是可以正常插入。
mysql中text 最大長度為65,535(2的16次方–1)字符的TEXT列。
如果你覺得text長度不夠,可以選擇
MEDIUMTEXT
最大長度為16,777,215。LONGTEXT
最大長度為4,294,967,295Text
主要是用來存放非二進制的文本,如論壇帖子,題目,或者百度知道的問題和回答之類。
需要弄清楚的是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ù)庫版本默認的utf8都為utf8mb3,注意其中所說的"相同的長度"。
所以在utf8mb4下,英文占用1個字節(jié),一般漢字占3個字節(jié),emoji表情占4個字節(jié)。
關于代碼插入emoji表情報錯,請檢查 表編碼 和 數(shù)據(jù)庫連接 編碼是否同時為utf8mb4。
結論:數(shù)據(jù)庫和表都設置為utf8mb4。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
GDB調(diào)試Mysql實戰(zhàn)之源碼編譯安裝
今天小編就為大家分享一篇關于GDB調(diào)試Mysql實戰(zhàn)之源碼編譯安裝,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02MySQL數(shù)據(jù)庫主從復制延時超長的解決方法
這篇文章主要給大家介紹了關于MySQL數(shù)據(jù)庫主從復制延時超長的解決方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-06-06MySQL?數(shù)據(jù)庫中數(shù)據(jù)表超詳細的基本操作
這篇文章主要介紹了MySQL?數(shù)據(jù)庫中數(shù)據(jù)表的基本操作,下面文章會從創(chuàng)建表的基本語法伊利舉例說明概括全篇數(shù)據(jù)表的基本操作詳情,需要的小伙伴可以參考一下文章的具體內(nèi)容,希望對你有所幫助2021-12-12MySql command line client命令操作大全
這篇文章主要介紹了MySql command line client命令操作大全,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01