你知道哪些表srtucture更好:基本性能比較
table user
id INT pk autoincrement
name VARCHAR(255)
email VARCHAR(255)
statut TINYINT(4)
的statut只能容納2種狀態:1/2
OR
table user
id INT pk autoincrement
name VARCHAR(255)
email VARCHAR(255)
statut VARCHAR(45)
的statut只能容納2狀態:活動/不活動
我正在尋找最快的方式來做select語句,如
SELECT id, name, email
FROM user
WHERE statut=:statut
我讀的地方,「整數」類型通常比處理「文本」類型 更快 但對於其他一些原因,我寧願到statut 存儲與VARCHAR
類型。
有沒有辦法使用類型爲VARCHAR
的statut並且運行速度更快?
或者是第一個結構確定最快的?
有一個在這裏閱讀http://www.mysqlperformanceblog.com/2008/01/24/enum-fields-vs-varchar-vs-int-joined-table-what-is-faster/#comment-624098和這http://www.mysqlperformanceblog.com/2008/08/09/picking-datatype-for-status-feilds/#comment-343318 – 2010-10-27 07:33:14
謝謝。現在我再次不確定最佳方法... – ling 2010-10-27 07:52:24
我個人使用一個字節tinyint(0,'un-verified'),(1,'active'),( - 1,'closed'),因爲它允許你添加新的狀態值而不改變表格定義,比如enum數據類型,對於大型表格可能需要幾小時!如果你不關心使用枚舉。 – 2010-10-27 07:57:12