通常,在创建新的web应用程序和配置MySQL时,某些字段需要随着应用程序的开发而更改格式。例如,我可能会更改日期字段的格式,或者更改以前只是int的字段的格式,现在需要一个字母或其他东西。所以通常我只会让每个字段都变得更加灵活,直到I完成,然后我会把数据类型改为正确的类型。
所以我的问题是,数据类型有多重要?目的是什么?速度?
发布于 2010-08-27 04:41:18
数据类型非常重要--如果没有数据类型,就无法确定列中实际存储了哪些数据。例如,VARCHAR(255)可以是任何东西-字符串、数字、日期/时间...如果您不能保证数据的一致性或任何形式的一致性,那么查找特定数据将变得极其困难。
这意味着数据类型还提供了基本的验证-不能将字母插入到具有数字或日期/时间数据类型的列中...
通过对列使用索引也可以提高数据检索的速度,但如果在比较数据之前必须将数据的数据类型更改为其他类型,则不能使用索引。
认识到数据和表示之间的区别是一件好事。就像日期字段格式化的情况一样-这就是表示,如果数据类型是DATETIME (或转换为DATETIME),就可以很容易地处理它。
发布于 2010-08-27 04:40:52
简而言之:速度,最佳数据存储,索引,搜索能力。
当所有内容都具有正确的数据类型时,您的数据库可以更好地利用内部工作。您还可以更好地利用特殊的数据库功能。
如果您想要检索某个月份的所有数据。例如,当使用date time数据类型时,您可以使用特殊的数据库函数仅按月分组。当使用varchar存储日期时,您将失去所有这些功能。
当索引是在INT数据类型上创建时,大多数数据库都能够更快地从表中搜索或检索数据。因此,如果将存储字段创建为varchar,性能将会下降
发布于 2010-08-27 05:02:50
性能是一个原因,但到目前为止还没有人讨论过运行这些类型的查询(如果所有类型都是VARCHAR,这是不可能的)
SELECT SUM(total) total FROM purchases WHERE status = 'PAID';
SELECT * FROM users WHERE DATE_ADD(last_login, INTERVAL 3 MONTH) < NOW();https://stackoverflow.com/questions/3579261
复制相似问题