关于MySQL的一些疑问

  1. 时间应该用什么存
    https://segmentfault.com/q/1010000000655428

这个问题是咱们程序员典型的架构权衡问题,甚至可以说钻牛角尖(当然有时候钻牛角尖不是不好)。
题主,其实无论你存时间戳还是用mysql的datetime,甚至是存字符串,这基本上都不会造成系统瓶颈,你应该把80%的时间用在解决系统性能消耗占比80%的问题上去。

我们阿里的系统,能够支撑单日亿级的写操作,读是多少大家更可以YY,而其中使用mysql的系统,时间就用的datetime,所以你完全不用担心性能的问题了。

用datetime还有个显而易见的好处,可读性高。1409556216984,这个时间戳没有人能看出来是什么时间,对未来问题排查和定位也会加大复杂度。

  1. 各种 int 类型 之间的区别
    MySQL - The difference between int, bigint, mediumint, smallint, and tinyint
Type Storage (Bytes) Minimum Value Signed Minimum Value Unsigned Maximum Value Signed Maximum Value Unsigned
TINYINT 1 -128 0 127 255
SMALLINT 2 -32768 0 32767 65535
MEDIUMINT 3 -8388608 0 8388607 16777215
INT 4 -2147483648 0 2147483647 4294967295
BIGINT 8 -2^63 0 2^63 -1 2^64-1

MySQL 整型长度的含义
MySQL的 int 和 tinyint 的默认长度是 int(11) 和 tinyint(4), 而boolean 型实际存储的是 tinyint(1).
定义位数并不会影响占用空间和性能, 也不会影响存储的数字范围

  1. 全局唯一id分配

暂无合适解决方案

  1. 业务逻辑放在代码里还是数据库里

大多放在代码里比较好吧, 易维护

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容