mysql数据库性能不比oracle数据库,所以设计上,和oracle有一些不同。下面总结一些互联网产品的数据库设计。
1.主键
主键可以使用bigint(20) unsigned也可以使用varchar,使用bigint,可以设置为自增主键auto_increment。使用varchar,要生成主键。
2.gmt_create、gmt_modified
在TB所有表中都添加gmt_create、gmt_modified字段,都是datetime类型。gmt_create表示记录创建时间,gmt_modified表示最近修改时间,如果记录没有修改,gmt_create和gmt_modified一致。
那么,这两个字段可以做什么用呢?这两个字段可以方便统计每天对某个表做了多少次的DML。另一种统计方式可以通过binlog。
查看昨天insert:
select * FROM test_table WHERE
gmt_create < date_format(DATE(now()), '%Y-%m-%e %H-%i-%s') AND
gmt_create >= date_format(DATE(date_add(now(), INTERVAL - 1 DAY)),'%Y