关于mysql中时间⽇期类型和字符串类型的选择
⽬录
⼀、DATETIME、TIMESTAMP 的⽤法
1、相同点
2、不同点
3、选择
⼆、varchar 和 text 数据类型的⽤法
1、相同点
2、不同点
3、选择
⼀、DATETIME、TIMESTAMP 的⽤法
MySQL中有多种表⽰时间⽇期的数据类型,主要有YEAR、TIME、DATE、DATETIME、TIMESTAMP等
1、相同点
datetime和timestamp都可以表⽰ YYYY-MM-DDHH:MM:SS 这种年⽉⽇时分秒格式的数据。
2、不同点
datetime存储与时区⽆关(准备来说是datetime只⽀持⼀个时区,就是存储时当前服务器的时区),⽽timestamp存储的是与时区有关。
datetime、timestamp精确度都是秒,datetime与时区⽆关,存储的范围⼴(1001-9999),timestamp与时区有关,存储的范围⼩(1970-2038)。
3、选择
TIMESTAMP和DATETIME除了存储范围和存储⽅式不⼀样,没有太⼤区别。当然,对于跨时区的业务,TIMESTAMP更为合适。
⼆、varchar 和 text 数据类型的⽤法
mysql在存储字符串时,可以使⽤char、varchar或者text类型
1、相同点
varchar 和 text 都可以存储变长字符串且字符串长度上限为65535字节
2、不同点
varchar 速度快,不存在空间浪费,不处理尾部空格,上限为65535字节,但是有存储长度实际65532字节最⼤可⽤。255字节以下⽤1字节存储长度,255字节以上⽤2字节存储长度。 text,存变长⼤数据,速
度慢,不存在空间浪费,不处理尾部空格,上限65535字节,会⽤额外空间存放数据长度,顾可以全部使⽤65535字节。
不能在TEXT列上放置索引(全⽂索引除外),对于text来说,只能添加前缀索引,并且前缀索引最⼤只能达到1000字节
text没有默认值
当varchar⼤于某些数值的时候,其会⾃动转换为text,⼤概规则如下:
⼤于varchar(255)变为 tinytext
⼤于varchar(500)变为 text
⼤于varchar(20000)变为 mediumtext
3、选择
1、经常变化的字段⽤varchar;
2、知道固定长度的⽤char;
3、超过255字节的只能⽤varchar或者text;
4、能⽤varchar的地⽅不⽤text;
5、能够⽤数字类型的字段尽量选择数字类型⽽不⽤字符串类型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接回逐个⽐较字符串中每⼀个字符,⽽对于数字型⽽⾔只需要⽐较⼀次就够了;
6、存储引擎对于选择 CHAR 和VARCHAR 的影响:
对于MyISAM 存储引擎,最好使⽤固定长度的数据列代替可变长度的数据列。这样可以使整个表静态化,从⽽使数据检索更快,⽤空间换时间。对于InnoDB存储引擎,最好使⽤可变长度的数据列,因为 InnoDB 数据表的存储格式不分固定长度和可变长度,因此使⽤CHAR 不⼀定⽐使⽤ VARCHAR 更好,但由于 VARCHAR 是按照实际的长度存储,⽐较节省空间,所以对磁盘 I/O 和数据存储总量⽐较好。
字符串长度和字节到此这篇关于关于mysql中时间⽇期类型和字符串类型的选择的⽂章就介绍到这了,更多相关mysql时间⽇期类型和字符串类型选择内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。