1. 程式人生 > >MySQL資料型別介紹

MySQL資料型別介紹

①BLOB和TEXT值也會引起自己的一些問題,特別是執行了大量的刪除或更新操作的時候。刪除這種值會在資料表中留下很大的"空洞",以後填入這些"空洞"的記錄可能長度不同,為了提高效能,建議定期使用 OPTIMIZE TABLE 功能對這類表進行碎片整理.

②使用合成的(synthetic)索引。合 成的索引列在某些時候是有用的。一種辦法是根據其它的列的內容建立一個雜湊值,並把這個值儲存在單獨的資料列中。接下來你就可以通過檢索雜湊值找到資料行 了。但是,我們要注意這種技術只能用於精確匹配的查詢(雜湊值對於類似<或>=等範圍搜尋操作符 是沒有用處的)。我們可以使用MD5()函式生成雜湊值,也可以使用SHA1()或CRC32(),或者使用自己的應用程式邏輯來計算雜湊值。請記住數值 型雜湊值可以很高效率地儲存。同樣,如果雜湊演算法生成的字串帶有尾部空格,就不要把它們儲存在CHAR或VARCHAR列中,它們會受到尾部空格去除的 影響。


合成的雜湊索引對於那些BLOB或TEXT資料列特別有用。用雜湊識別符號值查詢的速度比搜尋BLOB列本身的速度快很多。

③在不必要的時候避免檢索大型的BLOB或TEXT值。例 如,SELECT *查詢就不是很好的想法,除非你能夠確定作為約束條件的WHERE子句只會找到所需要的資料行。否則,你可能毫無目的地在網路上傳輸大量的值。這也是 BLOB或TEXT識別符號資訊儲存在合成的索引列中對我們有所幫助的例子。你可以搜尋索引列,決定那些需要的資料行,然後從合格的資料行中檢索BLOB或 TEXT值。

④把BLOB或TEXT列分離到單獨的表中。在某些環境中,如果把這些資料列移動到第二張資料表中,可以讓你把原資料表中 的資料列轉換為固定長度的資料行格式,那麼它就是有意義的。這會減少主表中的碎片,使你得到固定長度資料行的效能優勢。它還使你在主資料表上執行 SELECT *查詢的時候不會通過網路傳輸大量的BLOB或TEXT值。