会安装mysql,会几条sql语句,会jdbc,会hibernate配置,以为就会mysql了,最近几天面试被问到mysql的问题,无地自容,系统的学习一下。
mysql优化之一,选择合适的而不是最大的数据类型。
整型
类型 | 占用字节 | 范围 |
TINYINT | 1 | 2^8 |
SMALLINT | 2 | 2^16 |
MEDIUMINT | 3 | 2^24 |
INT | 4 | 2^32 |
BIGINT | 8 | 2^64 |
浮点型
类型 | 描述 |
FLOAT[(M,D)] | M表示最大总位数,D表示小数点后最大位数 |
DOUBLE[(M,D)] | 同上 |
日期类型
类型 | 范围 |
YEAR | 1970~2069 |
TIME | -8385959~8385959 |
DATE | 1000-01-01~9999-12-31 |
DATETIME | 1000-01-01 00:00:00~9999-12-31 23:59:59 |
DATESTAMP | 1970-01-01 00:00:00~2037-12-31 23:59:59 |
字符型(省略枚举类型和集合)
类型 | 范围 |
CHAR(M) | 定长,M个字符 0~255 |
VARCHAR(M) | 变长,L+1个字符,L<=M,L<=M<=65535 |
TINYTEXT | 最多存放2^8个字符 |
TEXT | 最多存放L<2^16个字符 |
MEDIUMTEXT | 最多存放L<2^24个字符 |
LONGTEXT | 最多存放L<2^32个字符 |