高性能mysql之慎用BLOB與TEXT

轉載自:http://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,就會將臨時表存儲在磁盤上,進而導致整體速度下降!

 

----- End -----

 

更多好文

請掃描下面二維碼

歡迎關注~

 

發佈了22 篇原創文章 · 獲贊 7 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章