- 多表字段尽量唯一
比如group表,那么所有字段前面都加上一个g(group的第一个字母),比如name字段就变成gname
**datetime**类型 与**timestamp**类型
DATETIME的默认值为null;TIMESTAMP的字段默认不为空(not null)默认值为CURRENT_TIMESTAMP
如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间(CURRENT_TIMESTAMP)
这个区别就解释了为什么平时我们都不用可以管这个字段就能自动更新了,因为多数时候用的是timestamp;而此处用的是datetime,不会有自动更新当前时间的机制,所以需要在上层手动更新该字段DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。- 两者的存储方式不一样 ,对于
TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。
查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。
- 两者所能存储的时间范围不一样
timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’;datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。- 在mysql
5.6之前的版本,CURRENT_TIMESTAMP只能用于timestamp类型
- 先说结论:
数字类型的 「长度」 ,是显示长度,不需要设置。
长度为3的int类型,填充一条值为1的数据,不会有任何变化,也就是没有任何用处。只有在设置了「填充零」 才会显示001
windwos 下
mysqllower_case_table_names=1 默认开启此项,忽略大小写导出导入,都将忽略为小写
且在phpstudy 集成环境安装下的Mysql 此项修改成0,服务将无法启动
linux下此项默认开启
