数据类型
数值类型
如果数值类型选的不妥当,有可能会导致IO访问次数变多性能下降
一般金融数据类型会使用浮点数
float和double如果出现了一处也不会报错。因此一般金融计算使用decimal(28位,底层使用字符串类型进行存储)类型比较多,如果发生数据溢出,decimal会报错也会四舍五入截断。
整形占用内存的大小是固定的,和具体的类型是强相关的,例如下面,括号里面的数字仅仅代表的是整数显示的宽度
age INT(9)
字符串类型
char是固定长度的,varchar是可变长的
BLOB:存二进制文件
mysql server尽量做最核心的CRUD,其它的逻辑功能一般通过服务端和业务层做限制
日期时间
时间戳:
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2024-02-07 21:19:12 |
+---------------------+
1 row in set (0.00 sec)
mysql> select unix_timestamp(now());
+-----------------------+
| unix_timestamp(now()) |
+-----------------------+
| 1707312003 |
+-----------------------+
1 row in set (0.00 sec)
TIMESTAMP类型会自动更新时间
enum和set
这两个类型都是限制该字段只能取固定的值,但是枚举字段只能取集合中的一个值,而集合字段可以取集合中的任意个值。