varchar因為有動態選擇大小的好處,所以以前都以varchar為文字欄位的第一選擇,看了一些書上的設計都以char為主要文字考量,上網查了一下資料
最後了解選擇char主要的考量是效能,有興趣的可以參考
MySQL varchar 長度和效能問題
char欄位會將未填滿的空間以空格填滿,所以第一考量是查詢時的where條仵是否正常(總不 能每次都要Trim掉空格吧)
先以describe [TableName] 查詢表格的schema
以正常條仵查詢,結果:正常
select * from event_logs where message='name'
查詢條件「後面」增加空格,結果:正常
select * from event_logs where message='name '
查詢條件「前面」增加空格,結果:不正常
select * from event_logs where message=' name'
看起來char欄位在查詢時會自動將後面空格略過,以length()函數查詢長度也是不含空格的字數
select length(message) from event_logs where message='name '
結論:接下來文字欄位應該都以char為設計欄位了