通常在创建新的Web应用程序和配置MySQL时,某些字段需要随着应用程序的发展而改变格式。例如,我可能会更改日期字段的格式或曾经只是int的字段现在需要一个字母或不是。因此,通常我只需将每个字段设置为Varchar 255,直到Im完成,此时我会更改数据类型以更正数据类型。
所以我的问题是,数据类型有多重要?这个目的是什么?速度ω
答案 0 :(得分:6)
数据类型非常非常重要 - 没有它们,就无法确定列中实际存储的数据。例如,VARCHAR(255)可以是任何东西 - 字符串,数字,日期/时间......如果您不能保证数据是什么或任何形式的一致性,那么查找特定数据会非常困难。
这意味着数据输入也提供基本验证 - 不能将字母粘贴到具有数字或日期/时间数据类型的列中...
通过使用列上的索引也可以提高数据检索的速度,但如果在比较数据之前必须将数据的数据类型更改为其他内容,则无法使用索引。
了解数据与演示之间的区别是一件好事。与日期字段格式的情况一样 - 即演示文稿,如果数据类型为DATETIME(或转换为DATETIME),则可以轻松处理。
答案 1 :(得分:2)
简答:速度,最佳数据存储,索引,搜索能力。
当所有内容都具有正确的数据类型时,您的数据库可以更好地利用内部工作。您还可以更好地利用特殊数据库功能。
如果要检索某个月的所有数据。例如,当使用日期时间数据类型时,您可以使用特殊数据库函数按月分组。使用varchar存储日期时,您将失去所有这些功能。
在INT数据类型上创建索引时,大多数数据库都能够更快地从表中搜索或检索数据。因此,如果您将该存储字段创建为varchar,则会失去性能
答案 2 :(得分:0)
性能是一个原因,但到目前为止还没有人谈到运行这些类型的查询(如果所有类型都是VARCHAR则不可能)
SELECT SUM(total) total FROM purchases WHERE status = 'PAID';
SELECT * FROM users WHERE DATE_ADD(last_login, INTERVAL 3 MONTH) < NOW();