ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
> 选择合适的数据类型很重要 > 定义 类型的时候尽量选择not null > 对于可以枚举的数据, 可以用整形替代 > varchar和char, 一个变长一个定长, 当然对于md5等之后的字符串肯定使用char > 要用selcet \*, 那么字段中少用text, 数据库中text类型只是存储text的文件指针, 并不是存储的数据 > int类型可以存储32bit/4byte的数据, 不会因为int(10) 和int(20)区别而改变 # 整形 ## TINYINT 占用1个字节 | 数据类型 | 范围 | | ----- | ------------- | | int8 | 有符号位:-128~127 | | uint8 | 无符号位: 0~255 | ## SAMLLINT 占用2个字节 | 数据类型 | 范围 | | ------ | ------------------ | | int16 | 有符号位:-32768~+32767 | | uint16 | 无符号位: 0~65535 | ## MEDIUINT 占用3个字节 | 数据类型 | 范围 | | ------ | --------------------------- | | int24 | 有符号位:-8388608~+8388607 | | uint24 | 无符号位: 0~16777215 / 2^24 - 1 | ## INT 占用4个字节 | 数据类型 | 范围 | | ------ | ------------------- | | int32 | 有符号位:-2^31~2^31 - 1 | | uint32 | 无符号位: 0~2^32 - 1 | * `int(10)`和 `int(100)`没有区别 ## BIGINT 占用8个字节 | 数据类型 | 范围 | | ------ | ------------------- | | int64 | 有符号位:-2^63~2^63 - 1 | | uint64 | 无符号位: 0~2^64 - 1 | # 浮点数 ## 单精度浮点FLOAT 精确到小数点的7位 -3.40283466E+38~-1.17549351E-38 1.17549351E-38~3.40283466E+38 ## 双精度浮点DOUBLE 大概是单精度的10倍 ## DECIMAL 一般都是用decimal DECIMAL(M,D) M为有效位数 D为保留几位小数 # 日期时间型 根据实际情况选用整形或者时间戳类型 ## DATATIME 8个字节 1000年1月1日0点-9999年12月31日59时59分59秒 # 字符型 ## CHAR(M) 定长 M个字节, 0<= M <= 255, ## VARCHAR(M) 变长 L+1个字节, 其中 L<=M 并且 0<=M<=65535 ## TINYTEXT L+1个字节 L< 2^8 ## TEXT L+2个字节 L< 2^16 ## MEDIUMTEXT L+3个字节 L< 2^24 ## LONGTEXT L+4个字节 L< 2^32 ## ENUM 1或2个字节 取决于枚举值的个数(最多65535个值) 可用 tinyint, int 等整形代替