blob和text都是為了存儲很大的數據而設計的字符串數據類型,分別采用二進制和字符串方式存儲。MySQL對blob和text列進行排序於其他類型是不同的:它只對每個列的最前max_sort_length字節而不是整個字符串排序。
盡量避免使用text和blob類型,如果實在無法避免,有一個技巧實在所有用到blob字段的地方都是用substring(column,length)將列值轉換為字符串(在order by 子句中也適用),這樣就可以使用內存臨時表了。但是要確保截取的子字符串足夠短,不會使臨時表的大小超過max_heap_table_size或tmp_table_size,超過以后Mysql會將內存臨時表轉換為MyISAM磁盤臨時表。
