MySQL 字符串长度定义的不是字节数,而是字符数。像 UTF-8 这样复杂的字符集可能需要多个字节来存储一个字符。更小的通常更好
MySQL 可以使用 FROM_UNIXTIME() 函数将 UNIX 时间戳转换成日期,使用 UNIX_TIMESTAMP() 函数将日期转换为 UNIX 时间戳。使用 DATETIME 类型还是使用 TIMESTAMP 类型需要考虑以下问题:
如果想要对时间戳进行记录,可以考虑使用 BIGINT 类型,它不会遇到 2038 年的问题。避免使用 NULL
MySQL 默认的行格式为 DYNAMIC,它会在每行数据中记录额外信息,其中就包括对 NULL 值列表的记录,如果我们所有的列都为 NOT NULL 的话,那么这部分额外信息是不需要记录的。但是实际上将列的定义修改为 NOT NULL 带来的性能提升并不明显,所以并不会将这种优化作为首选,而是在表结构初始化时考虑到这一点。
了解:COMPRESSED 行格式与 DYNAMIC 不同的是,它会对存储数据的页进行压缩以节省空间;COMPACT 行格式与 DYNAMIC 和 COMPRESSED 不同的是在对溢出列的处理上,COMPACT 会存储溢出列的部分数据,剩余的数据使用其他数据页保存,并记录下保存这些数据页的指针,DYNAMIC 和 COMPRESSED 则是将该列所有数据都保存在其他数据页中,在该列数据处只保存对应溢出页的地址。
作者:京东物流 王奕龙
来源:京东云开发者社区 自猿其说Tech 转载请注明来源
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |