高性能mysql之慎用BLOB與TEXT


文章轉自 https://blog.csdn.net/john1337/article/details/70919212

BLOB與TEXT是為了存儲極大的字符串而設計的數據類型,采用二進制與字符串方式存儲。mysql對待這兩個類型可謂煞費苦心,mysql會把這兩種類型的值當做一個獨立的對象處理,存儲引擎在存儲時通常會做特殊處理,

當BLOB與TEXT的值太大時,InnoDB會使用專門的“外部”存儲區域來進行存儲,此時每個值在行內會采用1~4個自己存儲指針,在外部存儲區域存儲實際值

Mysql對BLOB與TEXT類型進行排序的處理上與其他類型不同,只針對最前面的max_sort_length自己進行排序,如果只需要對前面的更少的字節進行排序,那么可以通過設置max_sort_length參數或者substring(value,length)來截取部分字符串。

在實際使用中應該慎用這兩個類型,尤其是會創建臨時表的情況下,因為如果臨時表大小超過max_heap_table_size或者tmp_table_size,就會將臨時表存儲在磁盤上,進而導致整體速度下降!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM