1. 程式人生 > >高性能mysql之慎用BLOB與TEXT

高性能mysql之慎用BLOB與TEXT

使用 log 如果 部分 tails 16px 大小 ble 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,就會將臨時表存儲在磁盤上,進而導致整體速度下降!

高性能mysql之慎用BLOB與TEXT