所以我们在Freenode上进行了这个编程讨论,而当我试图使用VARCHAR(255)来存储一个日期变量来存储这个格式的D / MM / YYYY时,就出现了这个问题.所以问题是为什么使用VARCHAR存储日期是如此糟糕.她的优点是:
它的代码速度更快以前我使用DATE,但是日期格式化是一个真正的痛苦.
>它的功率比日期要更强大的使用字符串?谁在乎,我们住在Ghz时代.
>它不符合伦理正确(lolwut?)这是其他用户告诉我的…
解决方法
当你有数据库超过2-3万行时,你会知道为什么使用DATETIME比VARCHAR更好:)
简单的答案是,使用数据库 – 处理能力不再是问题了.只是数据库的大小是因为HDD的寻道时间.
基本上使用现代硬盘,您可以读取大约100条记录/秒,如果它们以随机顺序读取(通常是这种情况),那么您必须尽可能的减少DB大小,因为:
>硬盘的头不必“走”这么多
>您将在RAM中更多的数据
最终,硬盘的追求时间总会让你死亡.例如.一些简单的GROUP BY查询与许多行可能需要几个小时在磁盘上完成相比,几秒钟完成在RAM =>因为寻找时代.
对于VARCHAR,您不能进行任何搜索.如果您讨厌sql如何处理日期太多,只需在32位整数字段中使用unix时间戳.您将(基本上)使用sql DATE字段的所有优点,您只需使用选择的编程语言(而不是sql函数)操作和格式化日期.