Quantcast
Channel: Gea-Suan Lin's BLOG » varchar
Browsing all 5 articles
Browse latest View live

對 MySQL 的 VARCHAR 欄位使用 INDEX 時可以增加效率的方法…

在 MySQL 中,如果你有 VARCHAR(255) 這種欄位,不要對直接對這個欄位下 INDEX。因為 key 會以最大長度 255 chars 為固定大小,而非動態決定 (latin1 的時候 1 char 是 1 byte,utf8 是 3 bytes,utf8mb4 是 4 bytes),當資料有 1M row data 就直接吃掉 1MB/3MB/4MB 的空間。...

View Article



MySQL 對 VARCHAR 的 Index 空間佔用的問題…

之前不知道從哪邊學到錯的東西… 實驗後發現搞錯了。對 MySQL 的 VARCHAR 欄位下 index 所實際佔用的空間仍是實際大小,而非最大長度。 測試方法是建立表格,schema 是 CREATE TABLE test (id INT UNSIGNED PRIMARY AUTO_INCREMENT, data VARCHAR(255)) ENGINE=InnoDB;,在...

View Article

將 latin1 的表格轉換成 UTF-8 表格…

Percona 的人寫了一篇「utf8 data on latin1 tables: converting to utf8 without downtime or double encoding」,告訴你怎麼將 latin1 的 TEXT 欄位轉成 UTF-8,文章內有提到利用 BLOB 轉。 不確定同樣方式能不能做在 VARCHAR 上面 (用 BINARY 轉?),但不知道會不會有...

View Article

MySQL 裡搜尋 CHAR/VARCHAR (String) 欄位時要注意的事情

MySQL 表格欄位是 CHAR 或 VARCHAR 時,寫搜尋條件要記得使用 string 格式,而非數字。意思是,要避免這種 SQL query: SELECT * FROM foo WHERE `column_string` = 123456; 原因是即使 column_string 加上了 B-tree index,也無法利用這個 index 加速查詢。 原因是,除了最明確的...

View Article

Image may be NSFW.
Clik here to view.

InnoDB 的 BLOB field 存放的方式

這邊的 BLOB field 指的包括 VARCHAR、VARBINARY、BLOB、TEXT 這些常常被拿來放大物件的類型:「Externally Stored Fields in InnoDB」。 這跟 InnoDB 存放的格式 (ROW_FORMAT) 也有關,對於不同的格式都需要分開討論。 看之前需要帶一些背景知識,像是 Database index 裡面講到 index 種類時所提到的...

View Article

Browsing all 5 articles
Browse latest View live




Latest Images