MySQL
MySQL 是现在最流行的关系型数据库管理系统关系型数据
关系型数据库指:多张能互相联接的二维行列表格组成的数据库——类似windows下的Excel表格数据
SQL 表示: Structrued Query Language 结构化查询语言
MySQL主要功能:
- 存储数据(仓库)
- 管理数据(增删改查)数据库(增删改查)管理系统 DBMS=DataBase Management System
MySQL常用的数据类型:
数值型:
优化建议:
- 建议使用 TINYINT 代替 ENUM、BITENUM、SET。
- 避免使用整数的显示宽度,也就是说,不要用INT(10)类似的方法指定字段显示宽度,直接用INT。
- DECIMAL最适合保存准确度要求高,而且用于计算的数据,比如价格。但是在使用DECIMAL类型的时候,注意长度设置。
- 建议使用整形类型来运算和存储实数,方法是,实数乘以相应的倍数后再操作。
- 整数通常是最佳的数据类型,因为它速度快,并且能使用AUTO_INCREMENT
日期和时间型:
优化建议:
- MySQL能存储的最小时间粒度为秒。
- 建议用DATE数据类型来保存日期。MySQL中默认的日期格式是yyyy-mm-dd。
- 用MySQL的内建类型DATE、TIME、DATETIME来存储时间,而不是使用字符串。
- 当数据格式为TIMESTAMP和DATETIME时,可以用CURRENT_TIMESTAMP作为默认(MySQL5.6以后), MySQL会自动返回记录插入的确切时间。
- TIMESTAMP是UTC时间戳,与时区相关。
- DATETIME的存储格式是一个YYYYMMDD HH:MM:SS的整数,与时区无关
- 除非有特殊需求,否则建议使用TIMESTAMP,它比DATETIME更节约空间。
字符串型:
优化建议:
- 字符串的长度相差较大用VARCHAR;字符串短,且所有值都接近一个长度用CHAR。
- BINARY和VARBINARY存储的是二进制字符串,与字符集无关。
- BLOB系列存储二进制字符串,与字符集无关。
- TEXT是一个更大的VARCHAR。
- BLOB和TEXT都不能有默认值。