你知道哪些表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